0
我試圖讓用戶從他們的畫廊選擇一個圖像來替換我的活動(這是基於DB值編程添加)現有的。下面是這是造成一些問題上我的代碼部分:Android - getIntExtra結果默認值在onActivityResult
public void requestImage(int imageID){
Intent intent = new Intent();
intent.putExtra("imageID",imageID);
intent.setType("image/*");
Log.v("requestImage",Integer.toString(intent.getIntExtra("imageID",0)));
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
Uri uri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
int imageID = data.getIntExtra("imageID",0);
Log.v("onactivityresult",Integer.toString(imageID));
} catch (IOException e) {
e.printStackTrace();
}
}
}
的目標是讓被選定爲這個功能,我路過這對requestImage,通過對onActivityResult的圖像的ID。 onActivityResult包含用於根據用戶選擇的圖像設置圖像位圖的代碼(爲簡明起見,從代碼示例中省略)。
注意兩個記錄語句,這導致:
05-27 15:51:31.756 7769-7769/com.praytoday.app.praytoday V/requestImage: 12
05-27 15:45:55.511 2037-2037/com.praytoday.app.praytoday V/onactivityresult: 0
如您在日誌報表注意到,第一個日誌實際上是讓從意圖本身整型,所以我敢肯定它是被正確設置(並且這裏沒有任何類型問題)。
在我看來,數據不應該是一樣的意圖(請原諒我缺乏對意圖主題的認識 - 這對我來說很新穎)。
的事情,我曾嘗試:
- 使用getIntent(),而不是數據
- 不使用createChooser,而是隻使用普通的意圖
- 看着這個我的每一個問題/答案可以找到
任何幫助確定爲什麼這個額外的價值不在數據參數將非常感激!提前致謝。
如果我沒有記錯,傳遞的意圖不是你傳遞的意圖 - 意味着該意圖中的任何參數都不會返回。但我可能是錯的 – Zoe
這真的好像會擊敗目的!似乎必須有可能通過某種方式傳遞一個論點 - 我真的認爲這是方式,但我想也許它不是。 – 3nails4you
雖然我很久沒有使用startActivityForResult,但不要把它當作答案。由於框架中的錯誤,可能會有一些重置它。 – Zoe