我有 3 项 Activity 。 Intent 从 Activity 1 传递到 Activity 2,其中包含一些用于数据库事务的数据。 Activity 2 中的数据和 Intent 被传递到 Activity 3。
现在,我想从 Activity 3 转移到 Activity 2,但当 Activity 2 从 Activity 1 获取 Intent 时,它会返回一些错误,导致 null 异常:/
因此,我想在从 Activity 3 返回时刷新 Activity 2,但没有 Intent 或正确使用不会影响数据的 Intent
最佳答案
从 Activity1 启动 Activity2:
Intent i = new Intent(this, Activity2.class);
startActivityForResult(i, 1);
在 Activity2 中使用 setResult
发送回数据:
Intent intent = new Intent();
intent.putExtra("edittextvalue","value_here")
setResult(RESULT_OK, intent);
finish();
并在第一个 Activity 中接收数据作为 onActivityResult:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == RESULT_OK){
String stredittext=data.getStringExtra("edittextvalue");
}
}
}
或
你可以用这个 在 Activity 2中,
@Override
public void onBackPressed() {
String data = mEditText.getText();
Intent intent = new Intent();
intent.putExtra("MyData", data);
setResult(resultcode, intent);
}
在 Activity 1中,
onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK) {
String myStr=data.getStringExtra("MyData");
mTextView.setText(myStr);
}
}
}
或
您可以使用SharedPreferences也用于在 Activity 之间共享数据
关于java - 无 Intent 的刷新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37122942/