android:fragmenttext中的edittext在从新片段返回时不显示值

时间:2014-04-16 18:59:48

标签: android-fragments android-edittext

当我从新片段返回到旧片段时,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方法,但是当我为FragmentB留下FragmentA时,根本没有调用onSaveInstanceState!

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

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

EditText Settext not working with Fragment