ListActivity完成时未调用onActivityResult

Mic*_*sen 2 android listactivity

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

为了做到这一点,我创建的一个子类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();
}
Run Code Online (Sandbox Code Playgroud)

然后,为了发起我的活动,我在我的MainMenu活动中有这个; 一个onClick处理程序Button:

public void openGameClick(View view) {
    Intent intent = new Intent(this, GameListScreen.class);
    startActivityForResult(intent, -1);
}
Run Code Online (Sandbox Code Playgroud)

并在MainMenu课堂上得到结果:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == Activity.RESULT_OK) {
        // result is handled here
    }
}
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作 - ListActivity启动,我可以看到我的记录,当我选择一个时,onListItemClick正在运行 - 但是onActivityResult没有被调用,我不知道为什么.在另一个项目中,我遵循相同的基本原则,并在那里工作.

我在这里错过了什么?我确定这是一个简单的错误,但我无法发现它.

我上传了我的项目以防万一.我正在使用Android 2.2进行测试,因为那是我的手机正在使用的.

Nic*_*ckT 9

也许这就是原因

来自javadocs:

完成后,您可以启动要获得结果的活动.当此活动退出时,将使用给定的requestCode调用onActivityResult()方法.使用否定requestCode与调用startActivity(Intent)相同(活动不作为子活动启动).