我已经实现了一个底栏导航片段using this tutorial
当片段仅用于一个活动时,一切都运行良好,但是,我做了4个不同的活动,并将片段添加到每个活动中。
我在每个Activity中都有以下case语句,当单击底栏导航按钮时,它们应该切换到相应的活动。
bottomBar.setOnItemSelectedListener(new OnTabSelectedListener() {
@Override
public void onItemSelected(int position) {
switch (position) {
case 0:
break;
case 1:
Intent sellIntent = new Intent(getApplicationContext(), SellActivity.class);
sellIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(sellIntent);
break;
case 2:
Intent messagesIntent = new Intent(getApplicationContext(), MessagesActivity.class);
messagesIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(messagesIntent);
break;
case 3:
Intent profileIntent = new Intent(getApplicationContext(), ProfileActivity.class);
profileIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(profileIntent);
break;
}
}
但是,当我点击其中一个导航按钮(例如案例1)时,我收到此错误。
FATAL EXCEPTION: main Process: me.xxx.spring, PID: 9000
java.lang.RuntimeException: Unable to start activity ComponentInfo{me.xx.spring/me.xx.spring.SellActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f0c006f (me.xx.spring:id/fragmentContainer) for fragment MyBottomNavFragment{8e1720 #0 id=0x7f0c006f}
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f0c006f (me.xx.spring:id/fragmentContainer) for fragment MyBottomNavFragment{8e1720 #0 id=0x7f0c006f}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1107)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1682)
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:388)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:607)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:181)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248)
at android.app.Activity.performStart(Activity.java:6681)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2609)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
有人知道我哪里出错吗?
我不会发布任何其他代码,例如片段类,因为它与here
相同由于
答案 0 :(得分:0)
改变活动时。使用getFragmenentManager()更新Fragment Manager。 它对我有用。