当onListItemClick()已经获得结果时需要onActivityResult()

时间:2010-07-06 06:21:29

标签: android android-intent

我有一个扩展Activity的主类,它应该生成一个ListActivity并获得所做的选择。 所以我在类中有一个onListItemClick(),它扩展了ListActivity,它通过getItemAtPosition接受选择。

此ListActivity由startActivityForResult启动。

现在,既然我已经在onListItemClick中获得了结果,为什么我需要onActivityResult()?它有什么作用?

意图在哪里?

1 个答案:

答案 0 :(得分:0)

如果要将选择的结果从列表返回到MainActivity,则使用startActivity作为结果。通过StartActivity for result,您可以将从列表中选择的值传递回主Activity。

当在onListItemClick中处理该值时,该值仅为您生成的ListActivity所知。要将其传回,您可以使用setResult(int, Intent),如下所示:

Intent resultIntent = new Intent;
resultIntent.putExtra(CONSTANT_FOR_RESULT, selection);
setResult(CONSTANT_FOR_SUCCESS, resultIntent)
finish();

这将使您的应用返回到第一个活动,并且将调用android documentation onActivityResult中的解释。现在,您可以从意图中提取选择并在主活动中使用它。

如果要将活动B中的选择传递回活动A,则只需要此机制。