我尝试使用以下方式在活动之间发送数据:
活动2
Bundle bloc = new Bundle();
bloc.putString("DataLoc", et1.getText().toString());
Intent intent = new Intent(this, Activity2.class);
intent.putExtras(bloc);
活动1
Intent iinf = getIntent();
Bundle binf = iinf.getExtras();
if (binf != null) {
String data = binf.getString("DataInf");
tv_1.setText(data);
tv_1.setText(getIntent().getExtras().getString("DataInf"));
}// end if
我的问题
我在Activity2
上打开了Activity1 under Activity2
,当我按下后退按钮时,我需要在一个TextView,EditText或类似文件上显示包,但只有我才能显示{{1}方法。
我尝试使用onCreate
和onResume
,但......不可能。
有什么建议吗?
答案 0 :(得分:3)
当我按下后退按钮时,如何在活动之间传递数据 的Android?
使用StartActivityForResult启动第二个活动,并使用父活动中的onActivityResult
使用从第二个活动收到的TextView
进行更新
在第二个活动中覆盖onBackPressed()
方法,并使用Intent调用setResult
发送数据:
@Override
public void onBackPressed() {
Intent data = new Intent();
// add data to Intent
setResult(Activity.RESULT_OK, data);
super.onBackPressed();
}
答案 1 :(得分:1)
您可以使用onActivityResult();
发送
Intent in= new Intent();
setResult(Activity.RESULT_OK, in);
finish();
For Recieving
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case (abc) : {
if (resultCode == Activity.RESULT_OK) {
// your stuff
}
break;
}
}
}
答案 2 :(得分:0)
我认为您正在寻找startActivityForResult()
和onActivityResult()
方法。 Here您可以找到如何使用它的示例。
答案 3 :(得分:0)
使用'DataLoc'字符串获取活动中所需的值。您必须使用startActivityForResult()和onActivityResult()方法,并使用setResult()方法获取值。