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