1
當我按下「後退」按鈕(同時在仿真器和Galaxy S2上測試),應用程序關閉,無論有多少片段事務已被提交:(爲什麼沒有addToBackStack填充BackStack?
好吧,以防萬一,我會發布我的實現片段的交易,雖然我懷疑他們是問題
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
Fragment fragment;
switch(tab.getPosition()) {
case(0):
fragment = new Fragment1();
break;
case(1):
fragment = new Fragment2();
break;
case(2):
fragment = new Fragment3();
break;
default:
fragment = new Fragment();
Toast.makeText(getBaseContext(), "Error", Toast.LENGTH_SHORT).show();
break;
}
Bundle args = new Bundle();
fragment.setArguments(args);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.okvir, fragment);
ft.addToBackStack(null);
ft.commit();
}
而且還
public void searchResultsView(List<School> results) {
setResults(results);
FragmentResults searchFragment = new FragmentResults();
Bundle args = new Bundle();
searchFragment.setArguments(args);
getFragmentManager().beginTransaction().replace(R.id.okvir, searchFragment).addToBackStack(null).commit();
}
現在我會盡量提供有關應用程序的技術細節,這樣你就可以弄清楚什麼是抱着它回(諷刺)。 應用程序有一個活動,並且您可以得出結論,利用ActionBar來初始化TabHost。 ActionBar.TabHost有三個連接到它的標籤,分別對應於Fragment1,Fragment2和Fragment3。 FragmentResults從Fragment2選項卡調用。如果您需要更多信息,請在評論中告訴我。
謝謝您的時間和精力。歡呼聲
P.S. Interenstingly,當我打電話DialogFragment,即使沒有AddToBackStack(空)方法按「返回」按鈕返回到調用它,並且不關閉應用程序的片段......