[英]How to get back the result from Child activity to Parent in android?
I'am starting a child activity on click of a button from Parent. 我点击Parent的按钮开始儿童活动。 And i'am calculating some result (of type string) in child activity and finishing the child to come back to Parent. 我在儿童活动中计算一些结果(字符串类型)并完成孩子回到父母。 Is there any better way to get that result in Parent using intents or extras? 有没有更好的方法来使用Intent或extras在Parent中获得该结果? (I can get that result in Parent by making the result variable as public & static in Child) Please help me. (我可以通过在Child中将结果变量设置为public&static来获得Parent中的结果)请帮帮我。 I'am a newbie to android development. 我是android开发的新手。
startActivityForResult(new Intent(ParentActivity.this, ChildActivity.class), ACTIVITY_CONSTANT);
What should i write in onActivityResult() of Parent? 我应该在Parent的onActivityResult()中写什么?
Instead of startActivityForResult(new Intent(ParentActivity.this, ChildActivity.class), ACTIVITY_CONSTANT);
而不是startActivityForResult(new Intent(ParentActivity.this, ChildActivity.class), ACTIVITY_CONSTANT);
You can use putExtras() method to pass values between activities: 您可以使用putExtras()方法在活动之间传递值:
In Child Activity: 在儿童活动中:
Intent data = new Intent();
data.putExtra("myData1", "Data 1 value");
data.putExtra("myData2", "Data 2 value");
// Activity finished ok, return the data
setResult(RESULT_OK, data);
finish();
And in Parent activity, you can override onActivityResult() and inside that you can have Intent paramater and from the Intent parameter of this method you can retrieve the extra values passed from the child activity, such as intent.getStringExtra or intent.getSerializableExtra. 在Parent活动中,您可以覆盖onActivityResult(),并且可以使用Intent参数,并且可以从此方法的Intent参数中检索从子活动传递的额外值,例如intent.getStringExtra或intent.getSerializableExtra。
for example: 例如:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
if (data.hasExtra("myData1")) {
Toast.makeText(this, data.getExtras().getString("myData1"),
Toast.LENGTH_SHORT).show();
}
}
}
In Parent Activity 在父活动中
Intent intent = new Intent(getApplicationContext(), yourChildActivity.class);
intent.putExtra("key", "value");
startActivityForResult(intent, ACTIVITY_CONSTANT);
in child activity to sent back result of your parent activity through 在子活动中发送您父项活动的结果
Intent data = new Intent();
data.putExtra("key1", "value1");
data.putExtra("key2", "value2");
// Activity finished return ok, return the data
setResult(RESULT_OK, data);
finish();
and get child activity result information in your parent activity 并在父活动中获取子活动结果信息
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
if (data.hasExtra("key1") && data.hasExtra("key2")) {
Toast.makeText(
this,
"Your reult is : "data.getExtras().getString("key1") + " " + data.getExtras().getString("key2"),
Toast.LENGTH_SHORT).show();
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.