我有一個AppCompatActivity
不同的PreferenceFragments
。我加入fragments
使用addToBackStack()
通話backstack
但在使用popBackStack()
檢索片段,該activity
不顯示fragment
(UI
未更新),但是getBackStackEntryCount()
與popBackStack()
呼籲降低。可能是什麼原因?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