我在TabLayout
内部使用Fragment
显示三个固定标签并且标签正在工作,但即使我app:tabTextColor
在布局中设置属性后它仍然不可见,它也不会显示标签文本.
NewFragment.java
public class NewFragment extends Fragment {
private RecyclerView mRecyclerView;
private RecyclerView.LayoutManager mLayoutManager;
private RecyclerView.Adapter mAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View inflatedView = inflater.inflate(R.layout.new_fragment, container, false);
TabLayout tabLayout = (TabLayout) inflatedView.findViewById(R.id.tabLayout);
tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));
tabLayout.addTab(tabLayout.newTab().setText("Tab 2"));
tabLayout.addTab(tabLayout.newTab().setText("Tab 3"));
final ViewPager viewPager = (ViewPager) inflatedView.findViewById(R.id.viewpager);
LinearLayoutManager mLayoutManager = new LinearLayoutManager(getActivity());
mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
viewPager.setAdapter(new PagerAdapter(getFragmentManager(), tabLayout.getTabCount()));
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setupWithViewPager(viewPager);
tabLayout.setTabMode(TabLayout.MODE_FIXED);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
} …
Run Code Online (Sandbox Code Playgroud) 我想从删除焦点和文本SearchView
在onResume()
.
我试过searchView.clearFocus()
但它不起作用.
这是我的xml代码:
<SearchView
android:id="@+id/searchView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/toolbar"
android:layout_alignTop="@+id/toolbar"
android:layout_centerVertical="true"
android:layout_marginBottom="4dp"
android:layout_marginTop="4dp"
android:iconifiedByDefault="false"
android:paddingLeft="16dp"
android:paddingRight="16dp" />
Run Code Online (Sandbox Code Playgroud) 我刚刚观看了高级数据绑定 - Google I/O 2016,并希望应用以下内容来减少在不同视图中使用的表达式的重复.
但我不能让它在我的情况下工作:
<ImageButton
android:id="@+id/btn_list"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="start"
android:background="@drawable/btn_s01_list"
android:visibility="@{bean.shouldHideControls? View.GONE: View.VISIBLE}"/>
<ToggleButton
android:id="@+id/btn_radar"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@drawable/btn_radar_selector"
android:checked="false"
android:gravity="end"
android:text=""
android:textOff=""
android:textOn=""
android:visibility="@{btn_list.visibility}"/>
Run Code Online (Sandbox Code Playgroud)
我得到了
错误:(426,39)标识符必须具有XML文件中的用户定义类型.btn_list缺少它
编辑:
我在同一个谈话中错过了一个重要的观点...视图ID是骆驼式的.
我想知道什么时候BaseAdapter.notifyDataSetChanged()
完成,然后做声音.我的代码:
BaseAdapter.notifyDataSetChanged();
mScroller.startScroll(oldX, 0, dx, 0);
Run Code Online (Sandbox Code Playgroud)
mScroller
notifyDataSetChanged()
完成之前滚动 .我想在完成后mScroller
滚动到.oldX
notifyDataSetChanged()
请帮帮我,谢谢.
如何Async Task
在不同的java文件中编写的类中传递上下文Main Activity
但是从主活动调用?
以下是我的代码:
@Override
protected void onPostExecute(List<Movie_ModelClass> result) {
super.onPostExecute(result);
if (result != null) {
Movie_Adapter movieAdapter = new Movie_Adapter(new MainActivity().getApplicationContext() , R.layout.custom_row, result);
MainActivity ovj_main = new MainActivity();
ovj_main.lv_main.setAdapter(movieAdapter);
} else {
Toast.makeText(new MainActivity().getApplicationContext() ,"No Data Found", Toast.LENGTH_LONG);
}
if (progressDialog.isShowing()) {
progressDialog.dismiss();
}
Run Code Online (Sandbox Code Playgroud) 我正在制作一个简单的报警应用.无论我在哪里使用Calendar
类,它都会显示与标题相同的错误.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.MINUTE, 30);
Run Code Online (Sandbox Code Playgroud)
每当我构建我的项目时,它建立良好但应用程序崩溃时,它是在手机上启动.下面是Logcat:
07-22 18:24:15.607 18047-18047/com.example.panwa.afinal D/AndroidRuntime: Shutting down VM
07-22 18:24:15.607 18047-18047/com.example.panwa.afinal W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x40d952d0)
07-22 18:24:15.627 18047-18047/com.example.panwa.afinal E/AndroidRuntime: ***FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: android.icu.util.Calendar***
at com.example.panwa.afinal.MainActivity.startAt10(MainActivity.java:70)
at com.example.panwa.afinal.MainActivity$3.onClick(MainActivity.java:46)
at android.view.View.performClick(View.java:4275)
at android.view.View$PerformClick.run(View.java:17434)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:177)
at android.app.ActivityThread.main(ActivityThread.java:4947)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
at dalvik.system.NativeStart.main(Native Method)
07-22 18:25:33.824 18047-18047/com.example.panwa.afinal I/Process: Sending signal. PID: 18047 SIG: 9
Run Code Online (Sandbox Code Playgroud)
我有一个我的min SDK设置为11但仍然无法正常工作.
我的Android 4+应用程序连接到自定义Web服务,该服务用于每隔几分钟同步一次数据.为了确保在线数据始终是最新的,我想在应用程序关闭/发送到后台时触发同步.
在iOS下这很容易:
applicationDidEnterBackground:
在AppDelegate中收听beginBackgroundTaskWithName:
开始您长时间运行的后台任务,并避免在任务仍在运行被暂停如何在Android上执行此操作?
第一个问题是,没有任何东西相当于applicationDidEnterBackground:
.到目前为止我发现的所有解决方案都建议使用主要的Activities onPause()
方法.但是,这会在主要Activity
暂停时调用,这也是Activity
在应用程序中启动另一个时的情况.接口的onActivityPaused()
方法是正确的ActivityLifecycleCallbacks
.
那么,如何检测应用程序(不只是一个Activity
)是关闭还是发送到后台?
第二个问题是,我没有找到任何关于如何运行后台任务的信息.所有解决方案都指向简单的启动AsyncTask
,但这真的是正确的解决方案吗?
AsyncTask
将启动一项新任务,但当应用程序关闭/不活动时,此任务是否也会运行?我需要做什么,以防止应用程序和任务在几秒钟后被暂停?在应用程序完全暂停之前,如何确保任务可以完成?
android background-process android-lifecycle android-asynctask
我有一个应用程序LoginActivity
,当用户正确登录时,我注册接收消息.而且LoginActivity
跳到了MainActivity
.到达的消息应该存储在数据库(Realm)中,以便从Main中的Realm实例中恢复.
但是当消息到达时崩溃领域启动此错误:
Exception in packet listener
java.lang.IllegalStateException: Realm access from incorrect thread. Realm objects can only be accessed on the thread they were created.
at io.realm.BaseRealm.checkIfValid(BaseRealm.java:383)
at io.realm.Realm.executeTransactionAsync(Realm.java:1324)
at io.realm.Realm.executeTransactionAsync(Realm.java:1276)
at es.in2.in2tant.LoginActivity.newMessageReceived(LoginActivity.java:124)
at es.in2.in2tant.Connection.Connection$4$1.processMessage(Connection.java:227)
at org.jivesoftware.smack.chat.Chat.deliver(Chat.java:180)
at org.jivesoftware.smack.chat.ChatManager.deliverMessage(ChatManager.java:351)
at org.jivesoftware.smack.chat.ChatManager.access$300(ChatManager.java:53)
at org.jivesoftware.smack.chat.ChatManager$2.processPacket(ChatManager.java:162)
at org.jivesoftware.smack.AbstractXMPPConnection$4.run(AbstractXMPPConnection.java:1126)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Run Code Online (Sandbox Code Playgroud)
我对Realm如何工作有点迷茫,我不知道如何在没有崩溃的情况下在整个应用程序中访问域,并保持存储从收到的消息LoginActivity
.一些帮助,或实现这一目标的方法?
LoginActivity.java:
public class LoginActivity extends AppCompatActivity implements ConnectionConnectResponse {
.....
protected void onCreate(Bundle savedInstanceState) {
//Realm Init config:
Realm.init(this);
RealmConfiguration …
Run Code Online (Sandbox Code Playgroud) Kotlin允许我使用多个比较字段对ASC和数组进行排序.
例如:
return ArrayList(originalItems)
.sortedWith(compareBy({ it.localHits }, { it.title }))
Run Code Online (Sandbox Code Playgroud)
但是当我尝试排序DESC(compareByDescending()
)时,它不允许我使用多个比较字段.
有什么办法可以吗?