私はAppCompatActivity
と異なるPreferenceFragments
を持っています。しかしgetBackStackEntryCount()
はpopBackStack()
コールとともに減少(UI
が更新されていない)私はaddToBackStack()
コールを使用してbackstack
にfragments
を追加していますがpopBackStack()
を使用して断片を取得しているとき、activity
はfragment
は表示されません。理由は何でしょうか?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);
}
}
}
はあなたがバックアップする活動で最初のフラグメントを追加する必要はありませんホープスタック。最初のものを置き換えるフラグメントは、スタックに戻って行く必要があります。 また、 'onClick()'の設定/オーバーライドはどこですか?それはセッティングアクティビティにあるべきではありませんか? – Sabeeh