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()
中获取文本并进行设置。更多的工作,但这是处理活动之间数据传输的正确方法。