RecyclerView项目选择和取消选择

时间:2019-09-03 07:14:46

标签: android arraylist android-recyclerview recycler-adapter

我在RecyclerView中有4个项目,当我选择第4个项目时取消选择其他选项,而在选择其他3个项目中的任意一个时,如何在Android RecyclerView中取消选择第4个选项呢?

 viewHolder.view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(gridItem.isSelectedItem() == false && gridItem.getProblemReason().equals("None of the Above")){
                Glide.with(mContext).load((R.drawable.ic_redcross))
                        .diskCacheStrategy(DiskCacheStrategy.ALL).skipMemoryCache(true)
                        .into(viewHolder.iv_selection);
                if (gridItem.getKey() != null) {
                    stringArrayList.clear();
                    stringArrayList.add(gridItem.getKey());
                }
                gridItem.setSelectedItem(true);
            }
            else {
                Glide.with(mContext).load(((int) gridItem.getProblemImgSelection()))
                        .diskCacheStrategy(DiskCacheStrategy.ALL).skipMemoryCache(true)
                        .into(viewHolder.iv_selection);
                if (gridItem.getKey() != null) {
                    stringArrayList.remove(gridItem.getKey());
                }
                gridItem.setSelectedItem(false);
            }

2 个答案:

答案 0 :(得分:0)

您需要创建arraylist并将对象选择为布尔值 当您选择项目时,使其在arraylist中为true,而另一个项目为false和notfy if(arrayliast.get(possion)= true){ 码 } 其他{ 码 }

答案 1 :(得分:0)

在适配器类中声明变量, int prevPosition = -1; 在onBindView方法中,

if (prevPosition == position) {
    // set background for selected item 
}
else {
    // set background for not selected item
}

点击持有人,

`prevPosition = position;`