0

J'ai un problème quand je clique sur le bouton Image de gallary pour définir en imageview, mais OnActivityResult ne répond pas à tout prix.En Fragment N'a pas donné de réponse pour onActivityResult quand j'ai cliqué sur l'image de gallary dans Android

Je ne sais pas comment remplacer cela dans l'activité il n'y a rien de réponse là-bas.

Comment résoudre ce problem.Thanks à l'avance

code:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.activity_edit_photo, null); 

     img = (ImageView)view.findViewById(R.id.img); 
     choosePhoto = (Button) view.findViewById(R.id.choose_photo_button); 
     Button clickPhoto = (Button) view.findViewById(R.id.click_photo_button); 
     toolbar = (Toolbar)view.findViewById(R.id.toolbar); 


     choosePhoto.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

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

       startActivityForResult(i, RESULT_LOAD_IMAGE); 



       //startActivityForResult(i, RESULT_LOAD_IMAGE); 

      } 
     }); 


     clickPhoto.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

       // start the image capture Intent 
       startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE); 

      } 
     }); 



     /* toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       onBackPressed(); 

      } 
     });*/ 




     return view; 



    } 

OnactivtiyResult

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == getActivity().RESULT_OK && null != data) { 
     Uri selectedImage = data.getData(); 
     String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

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

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


     img.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 

    } 


} 

Répondre

0

Remplacer cette méthode sur votre activité principale

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

    YourFragment yourFragment= (YourFragment) getSupportFragmentManager().findFragmentByTag("yourTag"); 
// or YourFragment yourFragment = (YourFrament) getSupportFragmentManager().findFragmentById(R.id.fragment_layout_id); 
    demoFragment.onActivityResult(requestCode, resultCode, data); 
} 

après l'appel du résultat de l'activité de votre fragment

+0

Pouvez-vous fournir le code pour effectuer les modifications à partir de ce fragment? – hem

+0

R.id.fragmentid mon fragment n'utilise pas l'ID – hem