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();
}
}
}
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.
}
});
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);
}
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.