2013-11-22 28 views
0

按下硬按鈕返回按鈕時,相機崩潰。 enter image description here這會影響畫廊並在應用程序中對相機拍照。我試着通過檢查意圖action()是否不爲空來處理這個問題。但它仍然崩潰。任何意見是極大的讚賞。按下硬鍵返回/返回按鈕時,相機和畫廊崩潰

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode==0){ 
     if(data.getAction() != null){ 
     Bitmap theImage = (Bitmap)data.getExtras().get("data"); 
     if(theImage !=null){ 
      iv.setImageBitmap(theImage); 
      } 
     } 

    } 
    else if (requestCode == 1) { 

     if(data.getAction() != null){ 
     Uri selectedImage = data.getData(); 
     String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

     Cursor cursor =getContentResolver().query(selectedImage, 
       filePathColumn, null, null, null); 
     cursor.moveToFirst(); 

     int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
     String picturePath = cursor.getString(columnIndex); 
     cursor.close(); 

     if(picturePath !=null){ 
     iv.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 
     } 
    } 
    } 
} 

***更新****

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
      //getInfo is the Bundle 
    if(data !=null || getInfo !=null){ 
     if(requestCode==0){ 
      if(data.getAction() != null){ 
      Bitmap theImage = (Bitmap)data.getExtras().get("data"); 
      if(theImage !=null || getInfo !=null || data!=null){ 
       iv.setImageBitmap(theImage); 
       } 
      } 

     } 

回答

2

包括內部onActivityResult()null值檢查。

檢查Intent data是否爲空,並在使用前是否爲hasExtra()

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(data!=null){ 
    // Your code 
    } 
} 
+0

你可以分享一個例子嗎? – DevC

+0

@Gman看看更新的回答 – Nizam

+0

它仍然崩潰,請使用您的建議檢查上面的更新代碼 – DevC