2016-09-24 3 views
1

私はAppCompatActivityと異なるPreferenceFragmentsを持っています。しかしgetBackStackEntryCount()popBackStack()コールとともに減少(UIが更新されていない)私はaddToBackStack()コールを使用してbackstackfragmentsを追加していますがpopBackStack()を使用して断片を取得しているとき、activityfragmentは表示されません。理由は何でしょうか?popBackStack()はPreferenceFragmentで動作していません

public class SettingsActivity extends AppCompatActivity { 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getFragmentManager() 
      .beginTransaction() 
      .replace(R.id.content_frame_settings, new SettingsPreferenceFragment1()) 
      .addToBackStack("SettingsPreferenceFragment1") 
      .commit(); 
    } 

    @Override 
    public void onBackPressed() { 
     if (getFragmentManager().getBackStackEntryCount() > 0){ 
      getFragmentManager().popBackStack(); 
     } else { 
      super.onBackPressed(); 
     } 
    } 

    public static class SettingsPreferenceFragment1 extends PreferenceFragment { 
     ... 
     ... 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      addPreferencesFromResource(R.xml.pref_settings1); 
      ... 
      ... 
     } 

     @Override 
      OnClick(View view){ 
       if(view == btnNext){ 
        getFragmentManager() 
         .beginTransaction() 
         .replace(R.id.content_frame_settings, new SettingsPreferenceFragment2()) 
         .addToBackStack("SettingsPreferenceFragment2") 
         .commit(); 
       } 
      } 
    } 

    public static class SettingsPreferenceFragment2 extends PreferenceFragment { 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      addPreferencesFromResource(R.xml.pref_settings2); 
     } 
    } 
} 
+0

はあなたがバックアップする活動で最初のフラグメントを追加する必要はありませんホープスタック。最初のものを置き換えるフラグメントは、スタックに戻って行く必要があります。 また、 'onClick()'の設定/オーバーライドはどこですか?それはセッティングアクティビティにあるべきではありませんか? – Sabeeh

答えて

0

私はそう、あなたが代わりにgetFragmentManager

getSupportFragmentManagerを使用する必要がある場合、あなたは、サポートフラグメントを使用していると思う、それは

+0

返信ありがとうございますが、getSupportFragmentManager()はPreferenceFragmentをサポートしていません。 –

関連する問題