Ich habe eine Reihe von Bildern in Recycler View in zufälliger Weise anzuzeigen. Das Problem besteht darin, dass Bilder wiederholt werden und nicht alle Bilder verwendet werden. Was ich brauche, ist: alle verwendeten Bilder und jedes davon nur einmal anzuzeigen (keine Wiederholung). Vielen Dank im Voraus für Hilfe.Bilder wiederholen in Recycler-Ansicht
public class Article {
private int mTitle;
private static int[] sTitles = {
R.drawable.image1a,
R.drawable.image2a,
....
R.drawable.image30a
};
public Article() {
Random random = new Random();
// Collections.shuffle (Arrays.asList (sTitles)); // Versuchte Erfolg
mTitle = sTitles[random.nextInt(sTitles.length)];
}
public int getTitle() {
return mTitle;
}
bearbeiten diesem aber kein zu verwenden: Mein Adaptercode
MyAdapter öffentlichen Klasse erweitert RecyclerView.Adapter {
private ArrayList<Article> mArticles = new ArrayList<>();
öffentliche RecyclerView mRecyclerView;
private class MyViewHolder extends RecyclerView.ViewHolder {
public ImageView mTitle;
public MyViewHolder(View pItem) {
super(pItem);
mTitle = (ImageView) pItem.findViewById(R.id.imageView);
}
}
public MyAdapter(ArrayList<Article> pArticles, RecyclerView pRecyclerView) {
mArticles = pArticles;
mRecyclerView = pRecyclerView;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, final int i) {
View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.article_layout, viewGroup, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int i) {
Article article = mArticles.get(i);
((MyViewHolder) viewHolder).mTitle.setImageResource(article.getTitle());
}
@Override
public int getItemCount() {
return mArticles.size();
}
Können Sie Ihr den Code für den Adapter zur Verfügung stellen? – babadaba
hinzugefügt Adapter-Code in der Frage – Pawel