【发布时间】:2017-07-19 13:41:53
【问题描述】:
在一个 Android 项目中,我有 3 个片段,我在用户执行操作期间浏览它们。
片段A -> 片段B -> 片段C
当用户完成操作后,我做一个popBackStack返回FragmentA
if(getFragmentManager()!=null)
if(getFragmentManager().getBackStackEntryCount()>0) {
getFragmentManager().popBackStack(getFragmentManager()
.getBackStackEntryAt(0)
.getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
我的问题是:
我有一个EditText,用户在其中写了一些文本,在调用popBackStack() 之后,片段显示,文本仍然存在。
有没有办法知道片段已被弹出并重置EditText?
编辑
这是我用来转到下一个屏幕的:
try {
String backStateName = ((Object) fragment).getClass().getName();
String fragmentTag = backStateName;
ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.container, fragment, fragmentTag);
ft.setTransition(FragmentTransaction.TRANSIT_NONE);
if (addToBackStack)
ft.addToBackStack(backStateName);
ft.commit();
} catch (Exception e) {
Logging.logException(e);
}
【问题讨论】:
-
为此,您可以在 FragmentA 的 onResume 中进行编码,只需在您的 onResume 中执行此操作 edittext.setText("");
-
当我popbackstack时,它似乎没有通过FragmentA上的onResume方法
-
您是否在 fragmentTransactions 中添加了 Fragment 或替换了 Fragments?
-
@Ric 只需设置 youreditText.setText("");当您从一个片段移动到另一个片段时。您知道当您从一个片段移动到另一个片段时,只需对其进行编码,这对您来说非常容易。
-
但是当我从 FragmentB 返回到 A 时,EditTextBox 将被重置,我只想重置它,当我完成该过程并调用该 popbackstack 时
标签: android android-fragments fragment-backstack