如何在Child中将Child活动的结果返回给Parent?

我点击Parent的按钮开始儿童活动。 我在儿童活动中计算一些结果(types字符串)并完成孩子回到父母。 有没有更好的方法来使用Intent或extras在Parent中获得该结果? (我可以通过在Child中将结果variables设置为public和static来获得Parent中的结果)请帮助我。 我是android开发的新手。

startActivityForResult(new Intent(ParentActivity.this, ChildActivity.class), ACTIVITY_CONSTANT); 

我应该在Parent的onActivityResult()中写什么?

而不是startActivityForResult(new Intent(ParentActivity.this, ChildActivity.class), ACTIVITY_CONSTANT);

您可以使用putExtras()方法在活动之间传递值:

在儿童活动中:

 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(); 

在Parent活动中,您可以覆盖onActivityResult(),并且可以使用Intent参数,并且可以从此方法的Intent参数中检索从子活动传递的额外值,例如intent.getStringExtra或intent.getSerializableExtra。

例如:

 @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(); } } } 

在父活动中

 Intent intent = new Intent(getApplicationContext(), yourChildActivity.class); intent.putExtra("key", "value"); startActivityForResult(intent, ACTIVITY_CONSTANT); 

在子活动中发送您父项活动的结果

 Intent data = new Intent(); data.putExtra("key1", "value1"); data.putExtra("key2", "value2"); // Activity finished return ok, return the data setResult(RESULT_OK, data); finish(); 

并在父活动中获取子活动结果信息

 @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(); } } }