按下时如何将数据从第二个活动传递到第一个活动?- 安卓 [英] How to pass data from 2nd activity to 1st activity when pressed back? - android
问题描述
我有 2 个活动,Activity1 和 Activity2.
I've 2 activities, Activity1 and Activity2.
在 Activity1
中,我有一个 Button 和 TextView.单击按钮时Activity2 启动.
In Activity1
I've a Button and TextView.
When the button is clicked Activity2 is started.
在 Activity2
中,我有一个 EditText.
In Activity2
I've an EditText.
我想在 Activity1 的 TextView 中的 Activity2 中显示从 EditText 检索到的数据,当返回是从 Activity2 按下.
I want to display the data retrieved from EditText in Activity2 in the TextView in Activity1 when back is pressed from Activity2.
有人可以帮我编写代码来完成这项工作吗?
can someone help me with the code to make this work?
推荐答案
Start Activity2 with startActivityForResult
并使用 setResult
方法将数据从 Activity2 发送回 Activity1.在 Activity1 中,您需要覆盖 onActivityResult
以使用来自 Activity2 的 EditText
数据更新 TextView
.
Start Activity2 with startActivityForResult
and use setResult
method for sending data back from Activity2 to Activity1. In Activity1 you will need to override onActivityResult
for updating TextView
with EditText
data from Activity2.
例如:
在Activity1中,启动Activity2:
In Activity1, start Activity2 as:
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();
在Activity1中,使用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");
}
}
}
如果可以,还可以使用 SharedPreferences 在活动之间共享数据.
If you can, also use SharedPreferences for sharing data between Activities.
这篇关于按下时如何将数据从第二个活动传递到第一个活动?- 安卓的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!