我使用创建了一个“新文件”活动
startActivityForResult(new Intent(MainActivity.this, NewFile.class),1);
NewFile 活动允许用户为其文本文件设置某些选项,然后在单击按钮后将字符串保存到我的 StringBuilder 类中的静态变量并完成();叫做。如何将这个新字符串加载到 MainActivity 的 EditText 中?onCreate() 仅在首次创建活动时才调用,对吗?
我使用创建了一个“新文件”活动
startActivityForResult(new Intent(MainActivity.this, NewFile.class),1);
NewFile 活动允许用户为其文本文件设置某些选项,然后在单击按钮后将字符串保存到我的 StringBuilder 类中的静态变量并完成();叫做。如何将这个新字符串加载到 MainActivity 的 EditText 中?onCreate() 仅在首次创建活动时才调用,对吗?
在 onResume 或 onActivityResult 上执行此操作。虽然 onActivityResult 是理想的,因为您已经使用了 startActivityForResult,在完成其他活动之前,如果您打算发回或者没有 setResult(int resultCode),则设置 setResult(int resultCode, Intent data)。我认为最好将用于更新 EditText 的字符串作为额外的意图放在意图中,然后在 onActivityResult 方法中使用该字符串设置文本。
在你的课上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);
}
}
}
有关更多说明,请参阅本教程
@Override
protected void onResume() {
super.onResume();
et.setText(DocumentBuilder.docText);
}