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进行测试,因为那是我的手机正在使用的.
也许这就是原因
来自javadocs:
完成后,您可以启动要获得结果的活动.当此活动退出时,将使用给定的requestCode调用onActivityResult()方法.使用否定requestCode与调用startActivity(Intent)相同(活动不作为子活动启动).
| 归档时间: |
|
| 查看次数: |
3034 次 |
| 最近记录: |