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

Android 当onListItemClick()已经获得结果时,需要onActivityResult(),android,android-intent,Android,Android Intent,我有一个扩展Activity的主类,它应该生成一个ListActivity并获得所做的选择。 因此,我在类中有一个onListItemClick(),它扩展了ListActivity,ListActivity通过getItemAtPosition接受选择 此列表活动由startActivityForResult启动 现在,既然我已经在onListItemClick中获得了结果,为什么我需要onActivityResult()??它有什么作用 意图从何而来?如果要将列表中的选择结果返回到MainA

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

此列表活动由startActivityForResult启动

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


意图从何而来?

如果要将列表中的选择结果返回到MainActivity,则使用startActivity作为结果。StartActivity for result允许您将从列表中选择的值传递回主活动

在onListItemClick中处理该值时,该值仅为生成的ListActivity所知。要将其传回,您可以使用以下方法:

Intent resultIntent = new Intent;
resultIntent.putExtra(CONSTANT_FOR_RESULT, selection);
setResult(CONSTANT_FOR_SUCCESS, resultIntent)
finish();
这将使您的应用程序返回到第一个活动,并将调用onActivityResult中的说明。现在,您可以从意图中提取所选内容,并在主要活动中使用它


只有当您想将活动B中所做的选择传递回活动a时,才需要此机制。

谢谢。如何在包中访问字段?目前,即使它们被声明为公共的,我也无法从同一个包中的另一个类访问这些字段?在活动B中,但在哪里?在获得选择结果后。我不知道在哪里可能是OnListItemClicked方法。当您有一个列表活动,并且在onListItemClick()中,您需要获取所选项目,然后将其与各种选项进行匹配,什么是有效的方法?无法使用开关大小写,因为我要匹配字符串。很长的if-else-if梯形图是唯一的方法吗?我建议在本页上作为新问题进一步提问。如果你在这个问题的评论中给我发一个链接,我会看看这个新问题。