Android onActivityResult意图数据不正确

Android onActivityResult意图数据不正确,android,android-activity,android-intent,bundle,Android,Android Activity,Android Intent,Bundle,我第一次冒险进入startActivityForResult,我遇到了一个问题 活动A(ActivityList)启动活动B(ActivityQuickList),等待结果: Intent intentLaunchQuickList = new Intent(ActivityMyList.this, ActivityQuickList.class); startActivityForResult(intentLaunchQuickList, REQUEST_QUICKLIST); 当用户单击活

我第一次冒险进入startActivityForResult,我遇到了一个问题

活动A(ActivityList)启动活动B(ActivityQuickList),等待结果:

Intent intentLaunchQuickList = new Intent(ActivityMyList.this, ActivityQuickList.class);
startActivityForResult(intentLaunchQuickList, REQUEST_QUICKLIST);
当用户单击活动B的列表项时,它会将“ql_id”返回给活动a:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    QuickListItem qlItem = m_Adapter.getItem(position);
    if (qlItem != null && qlItem.getQLId() != -1) {
        Intent data = new Intent();
        data.putExtra("ql_id", Integer.toString(qlItem.getQLId()));
        if (getParent() == null) {
            setResult(Activity.RESULT_OK, data);
        }
        else {
            getParent().setResult(Activity.RESULT_OK, data);
        }
        finish();
    }
    finish();
}
toString(qlItem.getQLId())的计算结果为“1”。这很重要,因为我没有收到“1”

我已使用以下内容覆盖了活动A中的onActivityResult处理程序:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_QUICKLIST) {
        if (resultCode == Activity.RESULT_OK) {
            Bundle extras = data.getExtras();
            if (extras != null) {
                int id = extras.getInt("ql_id");
            }
        }
    }
}
不幸的是,extras.getInt(“ql_id”)的计算结果为“0”。为什么会这样?应该是“1”。很明显,我做错了什么


谢谢你的帮助

啊,别客气。我把一个字符串放进包中,然后取出一个int。

啊,没关系。我把一个字符串放进包里,然后把一个int取出来。