0

私のアプリはこのような構造をしています

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();

                            }

リストフラグメントまたはフラグメントで戻るボタンを押しても戻らないようになりました

4

2 に答える 2

1

これが欠けていませんか: .addToBackStack(null)? こちらをご覧ください

于 2014-06-25T09:55:32.387 に答える