0

Im essayant de définir une image de la galerie à l'imageview dans mon Fragment. L'image est sélectionnée en utilisant ma classe GallerUtil donnée ci-dessous.Valeur de setresult ne pas entrer dans OnActivityResult de mon fragment

profile_home.setOnClickListener(new View.OnClickListener() 
{ 
     @Override 
     public void onClick(View v) 
     { 
      Intent gallery_Intent = new Intent(getActivity(), GalleryUtil.class); 
      startActivityForResult(gallery_Intent, GALLERY_ACTIVITY_CODE); 
     } 
    }); 

GalleryUtil.class

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     try{ 
      //Pick Image From Gallery 
      Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
      startActivityForResult(i, RESULT_SELECT_IMAGE); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     switch(requestCode){ 
      case RESULT_SELECT_IMAGE: 

       if (resultCode == Activity.RESULT_OK && data != null && data.getData() != null) { 
        try{ 
         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(); 

         //return Image Path to the Main Activity 
         Intent returnFromGalleryIntent = new Intent(); 
         Log.d("pathhh",picturePath); 

         returnFromGalleryIntent.putExtra("picturePath",picturePath); 
         setResult(RESULT_OK,returnFromGalleryIntent); 
         finish(); 

Le chemin de cette image ne reçoit pas dans mon onActivityResult de mon fragment..So me s'il vous plaît aider à trouver une solution

Mon onActivityResult dans Fragment -

@Override 
@SuppressLint("NewApi") 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Log.d("pathhh1","11"); 

    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == GALLERY_ACTIVITY_CODE) { 
     Log.d("pathhh","12"); 

     if(resultCode == Activity.RESULT_OK){ 
      picturePath = data.getStringExtra("picturePath"); 
      Log.d("pathhh",picturePath); 
      //perform Crop on the Image Selected from Gallery 
      performCrop(picturePath); 
     } 
    } 

    if (requestCode == RESULT_CROP) { 
     if(resultCode == Activity.RESULT_OK){ 
      Bundle extras = data.getExtras(); 
      selectedBitmap = extras.getParcelable("data"); 
      //selectedBitmap1=getRoundedCroppedBitmap(selectedBitmap, 50); 
      CircleDrawable circle = new CircleDrawable(selectedBitmap,true); 
      if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) 
       profile_home.setBackground(circle); 
      else 
       profile_home.setBackgroundDrawable(circle); 

      // Set The Bitmap Data To ImageView 
      // profile_img.setImageBitmap(selectedBitmap1); 
      profile_home.setScaleType(ImageView.ScaleType.FIT_XY); 
     } 
    } 
+0

mon onActivityResult() est indiqué ci-dessus .. s'il vous plaît vérifier – gStephin

+0

le contrôle ne reçoit pas de retour de la classe Galleryutil à onActivityResult() dans Fragment – gStephin

+0

Vous devez obtenir que le contrôle de retour de la classe GallerUtil à l'activité principale et passez-le à fragment dans onActivityResult – Bhavnik

Répondre

0

Ecrivez ce code dans votre MainAc tivité où les fragments sont placés.

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
      for (Fragment fragment : getSupportFragmentManager().getFragments()) { 
       //Write your fragment name instead of YourFragmentName 
       if (fragment instanceof YourFragmentName) { 
        fragment.onActivityResult(requestCode, resultCode, data); 
       } 
      } 
    } 
+0

itz ne fonctionne pas pour moi – gStephin

+0

vous ne pouvez pas appeler onActivityResult dans le fragment si vous appelez une autre activité. –