我的onActivityResult方法永遠不會被調用。我正在使用android 2.2Android onActivityResult從不叫
我正在使用一個Tabhost,其中TabHosts包含TabGroups其中包含單獨的活動。
我的一個個人活動的運行以下意圖
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), 0);
這個加載我的圖片庫的應用程序,我使用的是默認的Android庫中選擇一個圖像,當我回到我的onActivityResult不叫我的活動。
它看起來像這樣 - 我把一個斷點if(resultCode == 0)
,所以現在,我onActivityResult的邏輯不應該的問題
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == 0) {
if (requestCode == 0) {
Uri selectedImageUri = data.getData();
//OI FILE Manager
filemanagerstring = selectedImageUri.getPath();
//MEDIA GALLERY
selectedImagePath = getPath(selectedImageUri);
//DEBUG PURPOSE - you can delete this if you want
if(selectedImagePath!=null)
System.out.println(selectedImagePath);
else System.out.println("selectedImagePath is null");
if(filemanagerstring!=null)
System.out.println(filemanagerstring);
else System.out.println("filemanagerstring is null");
//NOW WE HAVE OUR WANTED STRING
if(selectedImagePath!=null)
System.out.println("selectedImagePath is the right one for you!");
else
System.out.println("filemanagerstring is the right one for you!");
}
}
}
生命週期函數通常被稱爲出的秩序和間歇性活動中的tabhost/tabgroup,所以我查看了在圖庫關閉後會調用哪些生命週期函數(只要我從android庫中選擇圖像,就會發生這種情況)
唯一被調用的是我的TabHost活動中的onResume()
。所以我嘗試在我的TabHost類AS和TabActivity類中放入完全相同的onActivityResult()
方法。在方法開始的同一位置有一個斷點。
這兩個類都不會被調用。
我現在正在繪製一張空白圖片,如果沒有內置的接收方法會響應它,我如何從應用中的圖庫應用中獲得結果。
由於我知道我的主TabHost得到onResume()
調用,我試圖添加Intent graphics = getIntent();
,看看它是否會從圖庫選擇接收數據,它不,所以我不明白我怎麼能做的邏輯在onResume()方法。
解決方案歡迎! :)
您確定您在調用startActivityForResult(..)的同一活動中有onActivityResult嗎? – dymmeh
這是,我也將它添加到帶有斷點的tabgroup和tabactivity頁面,以查看是否有任何一個被調用。具有諷刺意味的是,如果它沒有被正確調用,它會拋出一個ActivityNotFoundException,並且這也不起作用:(或者根本不叫它 – CQM
只是爲了好玩,你是否嘗試過創建一個測試項目,然後將你的意圖onActivityResult,你可以在上面的代碼中確認它是否有效,如果它不起作用,那麼你的手機/模擬器有些時髦,如果它確實起作用,你的代碼或者你正在調用沒有正確調用setResult(..) – dymmeh