0
在我的android應用程序中,片段將通過某個操作(例如操作欄菜單)添加到活動中。將多個後臺堆棧添加到片段事務
這是我補充的片段代碼:
case R.id.action_add_box:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.place, BoxEditFragment.newInstance(null, null));
ft.addToBackStack(null);
ft.commit();
break;
現在,一旦用戶擊中ID action_add_box
兩次的操作菜單,然後他必須打回兩次,關閉這不是片段預期。
可以避免這種情況嗎?
例如,一旦用戶點擊操作菜單,如果片段已經對用戶可見,則什麼也不做?
還有一個問題,片段中有一些EditTexts,一旦用戶完成,我將提交數據並關閉片段,但用戶可能需要再次打開片段,並且我想保留片段的值最後由用戶輸入的EditText。現在我保存片段分離時的值,並在使用savedInstanceState
創建時重置該值。
也可以爲每動作指示片段的新實例浪費內存,我不知道如果我可以只用一個片段實例,然後我可能不需要保存/手動重置價值?
可能是店ft.commit()結果,並期待在這個方法http://developer.android.com/reference/android/app/FragmentManager.html#popBackStack(int,int) – 2014-12-02 13:55:46