Android 替换片段不会删除文本字段数据
Android replacing fragment doesn't remove text field data
假设我有 2 个片段,其中一个有一个文本输入字段。
我在主要 activity 中的片段之间切换:
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_new) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, NewFragment(), fragment.getClass().getSimpleName())
.addToBackStack(Integer.toString(id))
.commit();
} ...
注意我正在使用 framentTransactions replace
方法
在带有输入框的当前片段上,我输入了一些文本。然后我使用导航栏切换到一个新片段。我希望因为我正在使用 replace
,旧片段不再存在。
我导航到新片段很好,但是当我按下后退按钮时,旧片段仍然有我之前输入的文本
为什么使用replace
会出现这种情况?我是不是误解了碎片交易的运作方式?
片段的 onCreateView
方法在我按回键时不会再次调用,从而实质上重置片段吗?
当你切换到另一个片段时,你必须手动清除你的textfied
因为片段替换只是替换片段,但你的旧片段仍然存在,没有任何变化。
假设我有 2 个片段,其中一个有一个文本输入字段。
我在主要 activity 中的片段之间切换:
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_new) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, NewFragment(), fragment.getClass().getSimpleName())
.addToBackStack(Integer.toString(id))
.commit();
} ...
注意我正在使用 framentTransactions replace
方法
在带有输入框的当前片段上,我输入了一些文本。然后我使用导航栏切换到一个新片段。我希望因为我正在使用 replace
,旧片段不再存在。
我导航到新片段很好,但是当我按下后退按钮时,旧片段仍然有我之前输入的文本
为什么使用replace
会出现这种情况?我是不是误解了碎片交易的运作方式?
片段的 onCreateView
方法在我按回键时不会再次调用,从而实质上重置片段吗?
当你切换到另一个片段时,你必须手动清除你的textfied
因为片段替换只是替换片段,但你的旧片段仍然存在,没有任何变化。