在startActivityForResult中传递数据并将其返回onActivityResult

时间:2011-09-03 19:58:16

标签: android android-activity android-intent

我有一个带有上下文菜单的ListView,用户可以在其中拍照。我拍这样的照片:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
this.startActivityForResult(intent, PICTURE_RESULT);

并像这样检索它:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == PICTURE_RESULT) {
        long itemId = ???
        savePicture(itemId, data.getExtras());
    }
}

如何传递ListView项ID?我尝试了intent.putExtras和intent.getLongExtra,但数据不会与结果意图一起传递。我不能使用实例变量,因为如果用户在拍照时切换到横向,活动可能会被破坏。

1 个答案:

答案 0 :(得分:3)

将该变量存储为Activity类成员,然后您可以从该Activity类的每个位置使用它。 如果要保存变量状态,则应使用onSaveInstance状态回调。请参阅开发人员文档。