[英]Pass value from second activity to first activity
I want to pass value from second activity to first. 我想将价值从第二项活动传递到第一项。 The second activity starts after first activity.
第二个活动在第一个活动之后开始。 I used
onActivityResult
and simple Intent
. 我使用了
onActivityResult
和简单的Intent
。 The code calls first activity but the toast
not works. 该代码调用第一个活动,但是
toast
无法正常工作。
SECOND ACTIVITY: 第二活动:
@Override
public void onBackPressed(){
Intent i = new Intent(this,ae.class);
setResult(RESULT_OK, i);
i.putExtra("name","name");
startActivityForResult(i,0);
}
}
FIRST ACTIVITY: 第一活动:
@Override
protected void onActivityResult(int requestCode ,int resultCode ,Intent data ) {
super.onActivityResult(requestCode, resultCode, data);
String name =getIntent().getExtras().getString("name");
if(resultCode == RESULT_OK){
switch(requestCode){
case 0:
if(resultCode == RESULT_OK){
Toast.makeText(this, name, Toast.LENGTH_LONG).show();
}
}
}
You just need the below in SecondActivity 您只需要在SecondActivity中获得以下内容
Intent i = getIntent();
i.putExtra("name","name");
setResult(RESULT_OK, i);
finish();
And in first activity in onActivityResult
并在
onActivityResult
第一个活动中
String name = data.getStringExtra("name");
You need 你需要
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivityForResult(intent,0);
in First Activity 在第一次活动中
From FirstActivity, start nextActivity like this- 在FirstActivity中,像这样启动nextActivity-
startActivityForResult(intent, code);
then in SecondActivity, setResult()- 然后在SecondActivity中,setResult()-
Intent intent=new Intent();
intent.putExtra("MESSAGE",message);
setResult(2,intent);
finish();
and then in FirstActivity, check code in onActivityResult(). 然后在FirstActivity中,检查onActivityResult()中的代码。 You were not getting result because you are starting the second activity by startActivity() only.
您没有得到结果,因为您仅通过startActivity()启动第二个活动。 I hope this will help you surely.
希望对您有所帮助。
You have to call startActivityForResult(intent, requestCode)
instead of startActivity(intent)
in FirstActivity
to load it. 您必须在
FirstActivity
调用startActivityForResult(intent, requestCode)
而不是startActivity(intent)
来加载它。 Then you implement the onActivityResult()
method in your FirstActivity
to get the data from SecondActivity
by using the passed Intent
in parameter. 然后,您在
FirstActivity
实现onActivityResult()
方法,以使用传递的Intent
in参数从SecondActivity
获取数据。
Finally, in your SecondActivity
make a call to setResult()
method when it's going to finish()
最后,在您的
SecondActivity
当它即将finish()
时调用setResult()
方法。
You are Going from Second To First. 您正在从第二到第一。 It will go into onCreate.
它将进入onCreate中。
So :- 所以:-
@Override
public void onBackPressed(){
Intent i = new Intent(this,ae.class);
setResult(RESULT_OK, i);
i.putExtra("name","name");
startActivityForResult(i,0);
}
}
FIRST ACTIVITY:
//in OnCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if(extras != null){
String name =extras .getString("name");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.