我有一个扩展Activity的主类,它应该生成一个ListActivity并获得所做的选择。 所以我在类中有一个onListItemClick(),它扩展了ListActivity,它通过getItemAtPosition接受选择。
此ListActivity由startActivityForResult启动。
现在,既然我已经在onListItemClick中获得了结果,为什么我需要onActivityResult()?它有什么作用?
意图在哪里?
答案 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,则只需要此机制。