2014-03-07 55 views
1

我有片段A和B.A包含一個列表,B包含一個imageview。當我在碎片中的列表項點擊進入B.我是從B.片段在活動結果調用後關閉

呼叫相機和畫廊意圖在B中onActivityResult B中

alert.setAdapter(adapter, new DialogInterface.OnClickListener() { 

    public void onClick(DialogInterface dialog, int item) { 
    if (item == 0) { 
    Intent cameraIntent = new Intent(
     android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    startActivityForResult(cameraIntent, PICK_FROM_CAMERA); 
    } else if (item == 1) { 
    Intent intent = new Intent(); 
    intent.setAction(Intent.ACTION_GET_CONTENT); 
    intent.addCategory(Intent.CATEGORY_OPENABLE); 
    intent.setType("image/*"); 
    startActivityForResult(intent, PICK_FROM_FILE); 
    } else { 
    dialog.cancel(); 
    } 

    } 
    }); 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == PICK_FROM_CAMERA) { 
    if (resultCode == getActivity().RESULT_OK) { 
    bitmap = (Bitmap) data.getExtras().get("data"); 
    cameraIcon.setImageBitmap(bitmap); 

    } else if (resultCode == getActivity().RESULT_CANCELED) { 
    Toast.makeText(getActivity(), "Result has been cancelled!", 
     Toast.LENGTH_LONG).show(); 
    } 
    } else if (requestCode == PICK_FROM_FILE) { 
    try { 
    if (resultCode == getActivity().RESULT_OK) { 
    try { 
     stream = getActivity().getContentResolver() 
     .openInputStream(data.getData()); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
    bitmap = BitmapFactory.decodeStream(stream); 
    cameraIcon 
     .setImageBitmap(Bitmap.createScaledBitmap(bitmap, 
     bitmap.getWidth()/2, 
     bitmap.getHeight()/2, true)); 

    } else if (resultCode == getActivity().RESULT_CANCELED) { 
    Toast.makeText(getActivity(), "Result has been cancelled!", 
     Toast.LENGTH_LONG).show(); 

    } 
    } catch (Exception e) { 
    } 
    } 
} 

但在意圖收集圖像之後的某些時間並且來到onActivityResult片段B 被關閉並且進入片段A而不是將圖像設置爲片段B中的圖像視圖.....

我在做什麼錯請幫忙

回答

1

請檢查使用另一個device.I認爲設備問題。

+1

準確地說luttu !!這是問題..它適用於其他設備很好....非常感謝您的時間.... –

+0

那麼,成功的android開發的關鍵是知道這些問題,並知道如何繞過它們。將不需要的行爲歸咎於「其他設備」的結果可能是許多「其他設備」的所有者將僅僅拒絕您的應用。 – Bondax

0

只是一個猜測,但我會說在onActivityResult完成後,在片段B中拋出一個異常..也許你應該檢查你的事件日誌/追蹤事件onResume/createView等