2017-02-16 6 views
0
System.out.println("weeeeeeeee"); 
try { 
    Bitmap thumbnail = (Bitmap) data.getExtras().get("data"); 
    System.out.println("111111"); 
    System.out.println(Common.getIm1()); 
    Common.getIm1().setImageBitmap(thumbnail); 
} 
catch(Exception e) 
{ 
    System.out.println("dakfls" + e.getMessage()); 
} 

基本的にonactivityresult関数で起こっていることは、次のエラーを与えます。 dakflsAttempt仮想メソッド 'java.lang.Object android.os.Bundle.get(java.lang.String)'をnullオブジェクト参照で呼び出します。クラッシュは1111 を印刷する前に起こっていると私は、このコードフォトギャラリーからのAndroidイメージ

Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
startActivityForResult(i, 100); 

を試してみて、あなたが得るこの

try 
{ 
    Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
    getActivity().startActivityForResult(i, 100); 
} 
catch(Exception e) 
{ 

} 
+0

次のように望むように画像のURIを使用する理由のtry-catch内のすべてのものがありますか? –

答えて

0

のように私のフラグメントからのスタートを呼び出しています

をサムネイルではない、完全な画像を必要としますonActivityResultの画像パス:

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (requestCode == 100 && resultCode == RESULT_OK && null != data) { 
      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(); 
      ImageView imageView = (ImageView) findViewById(R.id.imgView); 
      imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 
     } 
    } 
0

ちょうど戻った意図、その内容スタイルウリ、およびクエリでデータを使用するか、適切にIntentgetData()にあなたが持っているACTION_PICKからデータを受信するにはContentResolverの

Uri dataUri = data.getData(); 
ContentResolver contentResolver = getContentResolver(); 
InputStream stream = contentResolver.openInputStream(dataUri); //if you sure this content Uri is refer a file 
BitmapFactory.decodeStream(stream); 
1

でそれを開く必要があります。

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    switch (requestCode) { 
    case 100: 
     if (resultCode == RESULT_OK) { 
      Uri imageUri = data.getData(); 
      Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri); 
      Common.getIm1().setImageBitmap(bitmap); 
     } 
     break; 
    } 
} 

注:このようにあなたはあなたのクラスの先頭にstatic final intでコード100を置く必要があります。

0
photoBrowseButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      Intent intent = new Intent(Intent.ACTION_PICK, 
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
      startActivityForResult(intent, DataHolder.INTENT_BROWSE_GALLERY); 
     } 
    }); 

およびuは

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == DataHolder.INTENT_BROWSE_GALLERY) { 
     if (data != null) { 
      Uri targetUri = data.getData(); 

     } 
    } 

} 
関連する問題