图像在回收器视图中重复

帕维尔

我有一组图像以随机方式显示在“回收者视图”中。问题是图像重复出现,而并非所有图像都被使用。我需要的是:使用的所有图像仅显示一次(不重复)。预先感谢您的帮助。

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();

}
巴巴达巴

将您的Article类更改为此:

public class Article {
    private int mTitle;

    private static int[] sTitles = {
            R.drawable.image1a,
            R.drawable.image2a,
            ....
            R.drawable.image30a
    };

    public Article(int title) {
        this.mTitle = title;
    }

    public int getTitle() {
        return mTitle;
    }

    public static ArrayList<Integer> getRandomArticles() {
        ArrayList<Integer> titles = new ArrayList<>();
        ArrayList<Integer> tempTitles = new ArrayList<Integer>(Arrays.asList(sTitles));
        Collections.shuffle(tempTitles);
        for(int title : tempTitles) {
            titles.add(title);
        }
        return titles;
    }
}

然后,当您创建适配器时,将Article.getRandomArticles()作为文章列表传递,如下所示:

new MyAdapter(Article.getRandomArticles(), yourRecyclerView);

编辑:忘记了getRandomArticles的返回类型

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Glide在回收器视图中加载图像

kotlin 随机图像在其他图像视图中不重复

图像在Swift视图中为空

图像在堆栈视图中显示失真

我将图像附加到正在从服务器下载的回收器视图中,但是回收器视图未显示任何图像

检测回收器视图中显示的项目

如何在回收站视图中使用图像选择器

将图像从Firebase检索到Android Studio中的回收器视图中

发布的图像未出现在Firebase回收器视图中

检索Firebase图像作为可绘制对象,并在回收器视图中显示

如何在回收器视图中添加所有存储中的所有图像,包括视频?

缩放中央图像回收器视图

Admob本机高级广告在回收者视图中重复

回收站视图中的单选单选按钮(重复)

Android URL图像在列表视图中随机播放

视差背景图像在移动视图中放大

图像在抖动中的视图中无法正确呈现

在视图中显示图像在 Laravel 中不起作用

在回收视图中单击时使图像标记为

单击“回收者”视图中的项目时,查看全屏图像

回收者视图中的回收者视图

如何使用 gridlayoutmanager 在回收器视图中离散滚动?

Firebase回收器视图中的SearchView为空

在回收者视图中使用协调器布局

回收器视图中的数据未上载到Firebase

我的回收器视图中的对象列表最大为20

在Android的回收器视图中显示单击的值

如何像在此图像中一样在滚动视图中调整图像视图的大小?

如何在回收器视图中将评论添加到列表视图中.Adapter