I am having a problem that I want to random an image array in Recyclerview onBindViewHolder, everything is working fine but it is repeating random images from the array like 2 images coming 2 times. i am using it in vertical recyclerview for showing text and images to their exact position Like if i have 2 array one is string and the other one is int for images, so i want both array position will random simultaneously at same position but without duplicates my code is doing everything perfectly but its repeating the images.
This is my full code
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewwHolder> {
private int [] arraylist;
private Context ctx;
private ImageView name;
private TextView textView;
private String [] text ;
public MyAdapter(int[] arraylist, String []text,Context ctx) {
this.arraylist = arraylist;
this.text = text;
this.ctx = ctx;
}
@NonNull
@Override
public ViewwHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view= LayoutInflater.from(ctx.getApplicationContext()).inflate(R.layout.row, viewGroup, false) ;
return new ViewwHolder(view); }
@Override
public void onBindViewHolder(@NonNull ViewwHolder viewwHolder, final int i) {
Random random=new Random();
final int po=random.nextInt(arraylist.length);
name.setImageResource(arraylist[po]);
textView.setText(text[po]);
name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent= new Intent(ctx, second.class);
intent.putExtra("imageposition", arraylist[po]);
intent.putExtra("textposition",text[po]);
ctx.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return arraylist.length;
}
public class ViewwHolder extends RecyclerView.ViewHolder {
public ViewwHolder(@NonNull View itemView) {
super(itemView);
name=itemView.findViewById(R.id.itemoneimageone);
textView=itemView.findViewById(R.id.text);
}
}
}