finish()后刷新文本EditText

时间:2013-02-21 23:01:46

标签: java android android-activity

我使用

创建了一个“新文件”活动
startActivityForResult(new Intent(MainActivity.this, NewFile.class),1);

NewFile活动允许用户为其文本文件设置某些选项,然后在单击按钮后,将字符串保存到我的StringBuilder类中的静态变量并完成();叫做。如何将这个新字符串加载到MainActivity的EditText中? onCreate()仅在首次创建活动时调用?

3 个答案:

答案 0 :(得分:1)

在onResume或onActivityResult上执行此操作。虽然onActivityResult是理想的,因为你已经使用了startActivityForResult,在完成其他活动之前你设置了setResult(int resultCode,Intent数据),如果你有意发回,或者没有setResult(int resultCode)。我认为最好将用于更新EditText的字符串作为intent的额外内容,然后在onActivityResult方法中使用该字符串设置文本。

答案 1 :(得分:0)

@Override
    protected void onResume() {
        super.onResume();
        et.setText(DocumentBuilder.docText);
    }

答案 2 :(得分:0)

在您的班级NewFile.java中:

String strName = "toto";
Intent intent = new Intent();
intent.putExtra("name", "toto");
setResult(1, intent);
finish();

MainActivity.java

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    if (requestCode == 1) {
      if (resultCode == RESULT_OK) {
          // Handle successful result
          String name  = intent.getStringExtra("name");
          editText.setText(name);
      }
    }
}

请参阅此tutorial以获取更多解释