2017-11-08 9 views
0

私はFragmentPagerAdapterを3つのタブで使用しています。各タブには複数のfragmentsがあり、これらのフラグメントのうちの1つに、ギャラリーまたはカメラから写真を取得するよう要求されています。問題は、Fragmentのタブではなく、ActivityのホストのonActivityResult()が呼び出されていることです。感謝の意を表します。ここでアンドロイドは、フラグメントを使用してカメラまたはギャラリーから写真を取得します

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
     case MEDIA_TYPE_IMAGE_FROM_GALLERY: 
      if (resultCode == RESULT_OK) { 
       Uri selectedImage = data.getData(); 
       String realPath = getImageRealPath(selectedImage); 
       realPaths.add(realPath); 
       Glide.with(mActivity) 
         .load(realPath) 
         .into(profile_imv); 
      } 
      break; 
     case MEDIA_TYPE_IMAGE_BY_CAMERA: 
      if (resultCode == RESULT_OK) { 
       Uri selectedImage = data.getData(); 
       String realPath = getImageRealPath(selectedImage); 
       realPaths.add(realPath); 
       Glide.with(mActivity) 
         .load(realPath) 
         .into(profile_imv); 
      } 
      break; 
    } 
} 

は、私はこれがに結果の意図を渡しますstartActivityForResult(..)に変更getActivity().startActivityForResult(..)これはMainACtivityonActivityResult()コード

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Fragment fragment = getSupportFragmentManager().findFragmentByTag("USER_DETAILS"); 
    if (fragment != null) { 
     fragment.onActivityResult(requestCode, resultCode, data); 
    } 
} 
+0

あなたのギャラリーに投稿intent code – gStephin

答えて

0

ある

public void choosePhotoFromGallary() { 
    Intent galleryIntent = new Intent(Intent.ACTION_PICK, 
      android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

    startActivityForResult(galleryIntent, MEDIA_TYPE_IMAGE_FROM_GALLERY); 
} 

private void takePhotoFromCamera() { 
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    if (intent.resolveActivity(mActivity.getPackageManager()) != null) { 
     startActivityForResult(intent, MEDIA_TYPE_IMAGE_BY_CAMERA); 
    } 
} 

両方のギャラリーやカメラ用のテントを呼び出す方法ですその断片は onActivityResult(..)

このポストできれいに説明されていますhere

+0

私はすでに提案された方法のようにしました。まだ運がありません – Sultan

0

フラグメント内でonActiviyResult()をオーバーライドしてそこにコードを書き直してください。

+0

私は同じことを何も起こっていない変化していません。 – Sultan

+0

アクティビティとフラグメントの完全なコードを送信します。 –

関連する問題