我收到了一些片段,並試圖理清它們之間的轉換。我可以從主 - > A - > B - > C。然後,一旦我完成C中的東西,我想回到B→A→主要。這是我想達到的理想轉變。返回轉換中的Android片段
但是,用我現在的代碼,在轉換時會出現一些奇怪的現象。我從Main - > A - > B - > C,然後在C我正在做一些SQL來創建數據庫中的數據,一旦我完成了,我回到B。但是,從那裏,當我按下按鈕時,它會返回到C→B→A→主。在後退過程中有不必要的C。
裏面我主要,我打電話一個這樣的:
final SettingActivity settingFragment = new SettingActivity();
ft.replace(R.id.frame,settingFragment);
ft.addToBackStack("tag");
ft.commit();
裏面我一個,我打電話乙這樣的:
FragmentTransaction it = getFragmentManager().beginTransaction();
it.replace(R.id.frame,categoryFragment);
it.addToBackStack("tag");
it.commit();
裏面我B,我打電話給C這樣的:
FragmentTransaction et = getFragmentManager().beginTransaction();
et.replace(R.id.frame,editFragment);
et.addToBackStack("tag");
et.commit();
然後我Ç,當我成功插入到數據庫中的記錄裏面,我打電話乙這樣的:
// button on click listener
new GetAllCategoriesAsyncTask(
new GetAllCategoriesAsyncTask.OnRoutineFinished() {
public void onFinish() {
Bundle bundle = new Bundle();
FragmentTransaction it = getFragmentManager().beginTransaction();
bundle.putSerializable("categorylist", GetAllCategoriesAsyncTask.categoryList);
categoryFragment.setArguments(bundle);
it.replace(R.id.frame,categoryFragment);
it.addToBackStack("tag");
it.commit();
}
}).execute();
然後我乙內,我在onCreate()中獲取像這樣的數據:
categoryList = (ArrayList<Category>) getArguments().getSerializable("categorylist");
爲什麼ü從C替換B片段,它已經在棧,所以當你回來按B變得可見 –
所以我應該使用。新增()方法,或者。更換()?我認爲替換是當你切換意圖,你需要指定什麼地方去 – hyperfkcb
什麼。只是後盾 –