【发布时间】:2016-12-10 10:41:50
【问题描述】:
我有一组图像以随机方式显示在 Recycler View 中。问题是图像重复并且并非所有图像都被使用。我需要的是:所有图像都使用并只显示一次(不重复)。提前感谢您的帮助。
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));// 尝试使用这个但没有成功
mTitle = sTitles[random.nextInt(sTitles.length)];
}
public int getTitle() {
return mTitle;
}
编辑:我的适配器代码
公共类 MyAdapter 扩展 RecyclerView.Adapter {
private ArrayList<Article> mArticles = new ArrayList<>();
公共 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();
}
【问题讨论】:
-
你能提供你的适配器代码吗?
-
在问题中添加了适配器代码
标签: android image random android-recyclerview