私のアプリはこのような構造をしています
MainActivityは ActionBarActivityを拡張します-- ボタンを押したとき -> ListFragment --リスト項目を押したとき--> Fragment
Fragmentで 戻るキーを押すと、MainActivity に直接移動します。ListFragment に移動するにはどうすればよいですか
以下は、私が期待していることです
Fragment *----戻るキーが押された場合-> *ListFragment -- 戻るキーが押された場合---> MainActivity extends ActionBarActivity
次のコードは、フラグメントを開始するために mainactivity と listfragment で使用しているものです
.........................................
case 5:
fragment = new HomeFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
//getSupportActionBar().setSubtitle(navMenuTitles[position]);
//setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
アップデート
今、私は MainActivity に次のコードを追加しました
@Override
public void onBackPressed() {
Fragment frag = getSupportFragmentManager().findFragmentById(R.id.frame_container);
if((frag instanceof CommonMasjidPrayerTimes)) {
finish();
}
}
そして、私のリストフラグメントへの次のコード
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
// fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
if (masjidNamazTimings != null) {
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.addToBackStack(null);
ft.replace(R.id.frame_container, masjidNamazTimings).commit();
}
リストフラグメントまたはフラグメントで戻るボタンを押しても戻らないようになりました