【问题标题】:Replace fragment clears all Edittext Value替换片段清除所有 Edittext 值
【发布时间】:2018-08-14 13:50:07
【问题描述】:

Select Case里面我用过这个

getFragmentManager().beginTransaction()
.replace(R.id.frame_entry, new fragment_1())
.addToBackStack(null)
.commit();

在片段之间切换,但我有一个问题。该片段包含带有预选值的EditText。当我转到fragment_2 然后返回fragment_1 时,EditText 上的选定值消失了。我怎样才能保持价值?

【问题讨论】:

  • getFragmentManager().beginTransaction() .add(R.id.frame_entry, new fragment_1()) .addToBackStack(null) .commit();
  • 因为您每次都用新对象替换片段。
  • 我使用.add,但是当我在fragments 1 和2 之间切换时
  • @MahavirJain 这是真的,因为我不知道如何维护添加
  • 看起来像fragment1和2结合

标签: android android-fragments android-savedstate


【解决方案1】:

这可能会 Fragment Guide 帮助。

像这样覆盖 onSaveInstanceState。

 @Override
 public void onSaveInstanceState(Bundle outState) {
 super.onSaveInstanceState(outState);
 outState.putInt("curChoice", mCurCheckPosition);
}

以后就可以使用了

 @Override
 public void onActivityCreated(Bundle savedInstanceState) {
 super.onActivityCreated(savedInstanceState);
 if (savedInstanceState != null) {
    // Restore last state for checked position.
    mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
 }
}

OnActivityCreated 在 Fragment 从回栈返回后被调用。

【讨论】:

  • 您能详细说明一下吗?我该如何实现?
  • 在你的activity或fragment中粘贴以下函数,当你想在fragment之间切换时调用这个函数
  • 我发现目前正在测试
  • 在片段事务发生之前尝试保存edittext的值,然后在调用相同片段时检索。
  • 你能指导我如何做到这一点吗?也许是一个简短的例子
猜你喜欢
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 2017-11-18
相关资源
最近更新 更多