0

PreferenceScreen を開くアクティビティがあります。「戻る」をクリックすると、設定画面が閉じてアクティビティに戻ると思いますが、代わりに、現在のアクティビティが閉じられ、前のアクティビティに戻ります。どうすれば修正できますか?

public class MyActivity extends Activity {
    //....
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return (new Helper()).onOptionsItemSelected_menu(item,this,mFragmentManager);
    }
}


public class Helper {
   // ....

    public boolean onOptionsItemSelected_menu(MenuItem item, Activity activity, FragmentManager mFragmentManager)
    {
        switch (item.getItemId()) {
           case R.id.action_settings:
               MenuHelper.settings(activity, mFragmentManager);
               return true;
           default:
               return onOptionsItemSelected_menu(item, activity, mFragmentManager);
            }
     }

     public static void settings(Activity activity, FragmentManager mFragmentManager) {        
        FragmentTransaction mFragmentTransaction = mFragmentManager
                                .beginTransaction();
        PrefsFragment mPrefsFragment = new PrefsFragment(activity);
        mFragmentTransaction.replace(android.R.id.content, mPrefsFragment);
        mFragmentTransaction.commit();
     }

     public static class PrefsFragment extends PreferenceFragment {
        Activity m_activity;
        public PrefsFragment(Activity activity)
        {
            m_activity = activity;
        }

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.preferences);
     }
}
4

2 に答える 2

1

mFragmentTransaction を追加するだけで同じことを達成できますが、ダニエルの答えは完全に正しいです。addToBackStack(null)トランザクション コミットの直前。

于 2015-03-01T00:26:38.267 に答える