私はContextMenuエントリを持つListViewを持っています。これはユーザーフォトギャラリーをstartActivityForResultで開始するので、画像を選択してListItemに関連付けることができます。イメージを選ぶことはかなりうまくいきます。私は、インテントからのイメージURIをonActivityResultに渡します。startActivityForResultからonActivityResultへのIDの受け渡し
問題は、私はonActivityResultでListItemのIDを取得しないということです。 私はそれをputExtra経由でstartActivityForResultに渡すという意図にアタッチしようとしましたが、onActivityResultで受け取るインテントは明らかに同じではありません。
この情報をonActivityResultに渡す方法はありますか?私のコードは次のとおりです:
private void pickPhoto(long itemId) {
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
i.putExtra(ITEM_ID, itemId);
startActivityForResult(i, PICK_PHOTO_REQUEST);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case PICK_PHOTO_REQUEST:
long itemId = data.getLongExtra(ITEM_ID, 0);
long imageId = ContentUris.parseId(data.getData());
// That here says itemId is 0:
Log.d(TAG, "adding image " + imageId + " to item " + itemId);
setPhoto(itemId, imageId);
break;
default:
super.onActivityResult(requestCode, resultCode, data);
}
}
タンスラット!
インテントエクストラに設定されているアイテムIDは何ですか? – Suchi
はい、今やりました。それは0ではないので、ここではすべて正しいと思われる。 – jederik
intent.hasExtra(ITEM_ID)を使用してみましたか。 – Suchi