Java 刷新文本编辑完成后的文本()

Java 刷新文本编辑完成后的文本(),java,android,android-activity,Java,Android,Android Activity,我使用创建了一个“新文件”活动 startActivityForResult(new Intent(MainActivity.this, NewFile.class),1); NewFile活动允许用户为其文本文件设置某些选项,然后在单击按钮后,字符串将保存到my StringBuilder类和finish()中的静态变量中;被称为。如何将此新字符串加载到MainActivity的EditText中?只有在首次创建活动时才调用onCreate(),对吗?在onResume或onActivity

我使用创建了一个“新文件”活动

startActivityForResult(new Intent(MainActivity.this, NewFile.class),1);

NewFile活动允许用户为其文本文件设置某些选项,然后在单击按钮后,字符串将保存到my StringBuilder类和finish()中的静态变量中;被称为。如何将此新字符串加载到MainActivity的EditText中?只有在首次创建活动时才调用onCreate(),对吗?

在onResume或onActivityResult上执行此操作。尽管在ActivityResult上这样做很理想,因为您已经使用了startActivityForResult,在完成其他活动之前,如果您打算发回,或者如果没有setResult(int resultCode),您可以设置setResult(int resultCode,Intent data)。我认为最好将用于更新EditText的字符串作为额外字符串放在intent中,然后在onActivityResult方法中使用该字符串设置文本。

在类中
NewFile.java

@Override
    protected void onResume() {
        super.onResume();
        et.setText(DocumentBuilder.docText);
    }
String strName = "toto";
Intent intent = new Intent();
intent.putExtra("name", "toto");
setResult(1, intent);
finish();
@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);
      }
    }
}
MainActivity.java
中:

String strName = "toto";
Intent intent = new Intent();
intent.putExtra("name", "toto");
setResult(1, intent);
finish();
@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);
      }
    }
}

有关更多说明,请参阅此部分

因为您使用的是
startActivityForResult()
,所以不需要静态变量,只需让
NewFile
加载包含数据的意图,然后在调用活动的
onActivityResult()
中获取文本并进行设置。更多的工作,但这是处理活动之间数据传输的正确方法。