-3

I have an recycler view adapter class and in bind view holder i want to get image from gallery and set it to image view. In bindview there are issues coming in this for over riding this basically i want to open gallery and select image and set it on imageview.

 @Override
public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {

    Cheque_Payment chqadd_list = cheques_list.get(position);
    ImageView imageView=holder.imageView;
    holder.imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent();
            intent.setType("images/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            contxt.startActivity(intent);
            startActivityForResult(intent,IMG_REQUEST);
        }
    });


    holder.Chq_Amount.setText(cheques_list.get(position).getChequeAmount());
    holder.Chq_No.setText(cheques_list.get(position).getChequeNumber());
    holder.Chq_Date.setText(cheques_list.get(position).getChequeDate());
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == IMG_REQUEST && resultCode == RESULT_OK && data != null) {
        Uri path = data.getData();
        try {

          Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), path);
            imageview.setImageBitmap(bitmap);
            imageview.setVisibility(View.VISIBLE);

            // chx.setChequeImage(imageview.);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
arsalan
  • 25
  • 1
  • 9
  • Ok. Try to write some code and let us know how it goes. – Rohit5k2 Jul 06 '18 at 12:10
  • it is done same way as from non-adapter class – Vladyslav Matviienko Jul 06 '18 at 12:13
  • You can google it. Anyway look these: https://stackoverflow.com/questions/5309190/android-pick-images-from-gallery and for setting image I can recommend glide. https://github.com/bumptech/glide – Ozan Jul 06 '18 at 12:13
  • Onclick of imageview i want to open gallery and set it to image view – arsalan Jul 06 '18 at 12:15
  • First,you should store your image details with collection framework and when collect image from gallery then update value of data index and notify recycle view so you will get latest uploaded image.. – ViramP Jul 06 '18 at 12:23

2 Answers2

0

Try this code.. make interface into adapter class for click handling..

    OnItemClick onItemClick;

public void setOnItemClick(OnItemClick onItemClick) {
    this.onItemClick = onItemClick;
}

public interface OnItemClick {
    void getPosition(String data); //pass any things
}

after that click event into onBind..

@Override
public void onBindViewHolder(ItemViewHolder holder, final int position) {
    // below code handle click event on recycler view item.
    final String data = mStringList.get(position);
    holder.textView.setText(data);
    holder.pulshButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onItemClick.getPosition(data);
        }
    });

}

after adapter bind into recycler view it means adapter not null then called below method..

        adpater.setOnItemClick(new RecyclerViewAdpater.OnItemClick() {
        @Override
        public void getPosition(String data) {
            // define your camera or gallery image pick method code.
        }
    });
  • final String data = mStringList.get(position); here mStringList is giving error – arsalan Jul 06 '18 at 12:27
  • you don't know how to make adapter. It just example it containg string data thier for if you don't need then remove it. –  Jul 06 '18 at 12:30
  • it is just like same as Cheque_Payment chqadd_list = cheques_list.get(position); –  Jul 06 '18 at 12:30
  • sorry i am a beginer but even in defining camera or gallery image method i have to open an intent to access the gallery which can be done in activity but here it is still showing same error. – arsalan Jul 06 '18 at 12:41
  • it not possiable. pl when you click recycler view item then activity show only toast message. if is show then your open gallery code problem –  Jul 06 '18 at 12:44
  • I was successful for opening camera intent @Override – arsalan Jul 09 '18 at 09:32
0

here is an example of how to get an image from a gallery and set it to image view

adapter class for click handling

@Override
public void onBindViewHolder(@NonNull Viewholder holder, final int position) {
 
    holder.imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            requestcode = position;
            Intent pickPhoto = new Intent(Intent.ACTION_PICK,
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            activity.startActivityForResult(pickPhoto, 1);
        }
    });
    
}

add function to update the recyclerview

@Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode== requestcode)
        {
            if (resultCode == RESULT_OK) {
                Uri selectedFileURI = data.getData();
                Log.e("FileUpload : " , String.valueOf(selectedFileURI));
                imagevalues.get(requestCode).setName(String.valueOf(selectedFileURI));
                AdapterFunction(imagevalues);

            }

    }

}