「戻る」ボタンを押すと(エミュレーターとGalaxy S2の両方でテスト済み)、コミットされたフラグメントトランザクションの数に関係なく、アプリケーションが閉じます:(
わかりました、念のため、フラグメントトランザクションの実装を投稿しますが、それらが問題であるとは思えません
@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();
}
そして今、私はアプリケーションに関する技術的な詳細を提供しようとします。そうすれば、何が妨げになっているのかがわかります (皮肉なことです)。アプリケーションには 1 つのアクティビティがあり、結論として、ActionBar を使用して TabHost を初期化します。ActionBar.TabHost には、Fragment1、Fragment2、Fragment3 に対応する 3 つのタブが関連付けられています。FragmentResults は Fragment2 タブから呼び出されます。追加情報が必要な場合は、コメントでお知らせください。
お時間とご尽力いただきありがとうございます。乾杯
PS興味深いことに、DialogFragmentを呼び出すと、AddToBackStack(null)メソッドがなくても「戻る」ボタンを押して、それを呼び出したフラグメントに戻り、アプリを閉じません...