我們爲了幫助您需要更多的細節錯誤。 我已經注意到的第一件事是這條線
Intent intent = new Intent(add_activity.this,MainFragment.class);
startActivity(intent);
finish();
問題的,這是你不能故意啓動片段。
如果你想從MainActivity開始TravelActivity做這樣的:
Intent intent = new Intent (this /*indicating your current activity*/, TravelActivity.class /*indicating Activity you want to start*/)
startActivity(intent); //start TravelActivity
finish() //finish current activity - if you press back you will exit the app (if MainActivity was launcher activity)
如果你有在旅遊活動開始之後應加載片段是一個簡單的輔助方法,會做你的片段交易
public void replaceFragment(int rootViewId, Fragment fragment, boolean addToBackStack) {
try {
FragmentManager fragmentManager = getSupportFragmentManager();
if (fragment == null)
return;
if (checkIfFragmentIsCurrent(fragment, rootViewId))
return;
String backStateName = fragment.getClass().getSimpleName();
boolean fragmentPopped = fragmentManager.popBackStackImmediate(backStateName, 0);
if (!fragmentPopped) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(rootViewId, fragment);
if (addToBackStack) {
transaction.addToBackStack(fragment.getClass().getSimpleName());
}
transaction.commit();
}
} catch (Exception e) {
Log.e("ReplaceFragment", "Exception: " + e.getMessage());
}
}
protected boolean checkIfFragmentIsCurrent(Fragment fragment, int placeHolderRes) {
Fragment currentFragment = getSupportFragmentManager().findFragmentById(placeHolderRes);
if (fragment != null && currentFragment != null) {
if (fragment.getClass().equals(currentFragment.getClass())) {
return true;
}
}
return false;
}
爲了使用這個只是調用replacFragment(將容納你的片段的容器的ID,片段例如,真實的 - 如果你想片段添加到堆棧中)
要了解片段交易reffer這個link
包括您logcat的!沒有足夠的信息給任何人回答你的問題 – Booger
自然任務堆疊排序應該帶你回來嗎?使用您想要發生的事情的圖表或質地流程。 –
好吧,只要忘記錯誤。請你能告訴我需要什麼類型的代碼才能將我從活動帶到導航抽屜中,並且上面的代碼是否正確? –