Android ListActivity完成时未调用onActivityResult

Android ListActivity完成时未调用onActivityResult,android,listactivity,Android,Listactivity,在我正在开发的一个小应用程序中,我需要能够从数据库表中选择一条记录 为此,我创建了一个子类ListActivity,GameListScreen,用于显示记录,并覆盖了onListItemClick(),如下所示: @Override protected void onListItemClick(ListView l, View v, int position, long id) { Game g = (Game)getListView().getItemAtPosition(posit

在我正在开发的一个小应用程序中,我需要能够从数据库表中选择一条记录

为此,我创建了一个子类
ListActivity
GameListScreen
,用于显示记录,并覆盖了
onListItemClick()
,如下所示:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    Game g = (Game)getListView().getItemAtPosition(position);
    Intent intent = new Intent();
    intent.putExtra("id", g.getId());
    setResult(RESULT_OK, intent);
    finish();
}
然后,为了启动我的活动,我在我的
main菜单中设置了这个
activity;
按钮的
onClick
处理程序:

public void openGameClick(View view) {
    Intent intent = new Intent(this, GameListScreen.class);
    startActivityForResult(intent, -1);
}
要获得结果,也可以在
主菜单
类中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == Activity.RESULT_OK) {
        // result is handled here
    }
}
一切都完全按照预期工作-ListActivity启动,我可以看到我的记录,当我选择一个时,onListItemClick正在运行-但是没有调用ActivityResult
,我不知道为什么。在另一个项目中,我遵循相同的基本原则,它在那里工作

我错过了什么?我肯定这是个简单的错误,但我看不出来

我已经上传了,以防万一。我正在使用安卓2.2进行测试,因为我的手机正在使用安卓2.2。

也许这就是原因

从javadocs:


启动一项活动,在该活动完成时希望获得结果。当此活动退出时,将使用给定的请求代码调用onActivityResult()方法使用否定请求代码与调用startActivity(Intent)相同(该活动不是作为子活动启动的)。

事实上,将其设置为0就成功了。但我不知道为什么,因为在我的另一个项目中,我使用了-1,但可能我忘了从我的另一台计算机将我的更改提交到该项目。哦,好吧,非常感谢大家的帮助,现在我终于可以继续了。我遇到了同样的问题,并且在我的请求代码中传递了一个负值。将requestCode的值更改为正值立即起到了作用。