【问题标题】:android: edittext in fragment not showing value when returning from new fragmentandroid:从新片段返回时片段中的edittext不显示值
【发布时间】:2014-04-16 18:59:48
【问题描述】:

当我从新 Fragment 返回到旧 Fragment 时,EditText setText() 不显示任何内容!

从我的 FragmentActivity 我创建 FragmentA。从 FragmentA 我这样创建 FragmentB:

FragmentB fragmentB = new FragmentB();
fragmentB.setTargetFragment(this, "RESULT");
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.frl_view_container, fragmentB);
transaction.addToBackStack(null);
transaction.commit();

我从 FragmentB 将一个字符串值传回 FragmentA 并返回给 FragmentA。

这是我在 FragmentB 中使用的代码:

String res = "OK";
Intent intent = new Intent();
intent.putExtra("RESULT", res);
getTargetFragment().onActivityResult(getTargetRequestCode(), 0xFF, intent);
getFragmentManager().popBackStack();

res值通过FragmentA的onActivityResult传回成功:

String result;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if ((resultCode == FragmentActivity.RESULT_OK) && ( requestCode == 0xFF) ) {
        result = data.getStringExtra("RESULT");
    }
}

但是,当我回到 FragmentA 的 onCreateView 时,我尝试通过一个简单的调用显示我从 FragmentB 移植的结果:

edt_result.setText(result);

但 EditText 没有显示任何内容!如果我简单地写,也会发生同样的情况:

edt_result.setText("blah blah"); // The "blah blah" does not appear in my view!

你知道我该如何克服这个问题吗?

当我回到 FragmentA 时,会不会是 EditText 失去了状态?我试图覆盖 FragmentA 的 onSaveInstanceState 方法,但是当我将 FragmentA 留给 FragmentB 时根本不会调用 onSaveInstanceState!

非常感谢任何帮助。

【问题讨论】:

标签: android-fragments android-edittext


【解决方案1】:

答案是在 onResume 中调用 setText 而不是在 onCreateView 中。阅读此处了解更多信息:

EditText Settext not working with Fragment

【讨论】:

  • 很好的答案.. 持续了几个小时
猜你喜欢
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-19
  • 2014-10-13
  • 1970-01-01
相关资源
最近更新 更多