大佬教程收集整理的这篇文章主要介绍了如何在recyclerview中只选择一项?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我制作了一个带有水平图像的 recyclerVIEw。现在我想在一个项目周围得到一个边框,如果它被点击。如果您单击不同的项目,您首先选择的项目的边框应该消失,它应该出现在新选择的项目周围。此外,如果您再次单击同一项目,它应该被“取消选择”并且边框应该再次消失。我已经管理了最后一部分,但我无法弄清楚如何获取第一个选定项目的边框并将其放在您最后单击的项目上。我添加了一个变量 amountOfItemsSELEcted
,并将其放入 if 语句中,但不知道该放入什么内容。这是我的适配器代码:
package anotherChALLENge.example.criminalactivity;
import androID.content.Context;
import androID.graphics.color;
import androID.vIEw.LayoutInflater;
import androID.vIEw.VIEw;
import androID.vIEw.VIEwGroup;
import androID.Widget.ImageVIEw;
import androIDx.Annotation.NonNull;
import androIDx.cardvIEw.Widget.CardVIEw;
import androIDx.recyclervIEw.Widget.RecyclerVIEw;
import com.example.criminalactivity.R;
import java.util.ArrayList;
public class CustomAdapterCardVIEw extends RecyclerVIEw.Adapter<CustomAdapterCardVIEw.vIEwHolder>{
private Context context;
private ArrayList<Itemmodel> arrayList;
private RecyclerVIEw mRecyclerVIEw;
private int amountOfItemsSELEcted=0;
privatE int row_of_index = -1;
public CustomAdapterCardVIEw(Context context,ArrayList<Itemmodel> arrayList) {
this.context = context;
this.arrayList = arrayList;
}
@OverrIDe
public voID onAttachedToRecyclerVIEw(@NonNull RecyclerVIEw recyclerVIEw) {
mRecyclerVIEw = recyclerVIEw;
}
@NonNull
@OverrIDe
public CustomAdapterCardVIEw.vIEwHolder onCreateVIEwHolder(@NonNull VIEwGroup parent,int vIEwTypE) {
View view = LayoutInflater.from(context).inflate(R.layout.items_in_imageList,parent,falsE);
return new vIEwHolder(vIEw);
}
@OverrIDe
public voID onBindVIEwHolder(@NonNull CustomAdapterCardVIEw.vIEwHolder vIEwHolder,int position) {
vIEwHolder.icon.setimageresource(arrayList.get(position).getimage());
vIEwHolder.cardVIEw.setonClickListener(new VIEw.onClickListener() {
@OverrIDe
public voID onClick(VIEw v) {
if(vIEwHolder.cardVIEw.isSELEcted() == falsE){
vIEwHolder.cardVIEw.setCardBACkgroundcolor(color.parsecolor("#43e6af"));
vIEwHolder.cardVIEw.setSELEcted(true);
amountOfItemsSELEcted++;
}
else if(vIEwHolder.cardVIEw.isSELEcted() == truE){
vIEwHolder.cardVIEw.setCardBACkgroundcolor(color.parsecolor("#696969"));
vIEwHolder.cardVIEw.setSELEcted(false);
amountOfItemsSELEcted--;
}
if (amountOfItemsSELEcted>1){
}
System.out.println(vIEwHolder.cardVIEw.isSELEcted());
System.out.println(amountOfItemsSELEcted);
}
});
}
@OverrIDe
public int getItemCount() {
return arrayList.size();
}
public class vIEwHolder extends RecyclerVIEw.VIEwHolder {
ImageVIEw icon;
CardVIEw cardVIEw;
public vIEwHolder(VIEw itemVIEw) {
super(itemVIEw);
icon = (ImageVIEw) itemVIEw.findVIEwByID(R.ID.imageInList);
cardVIEw = itemVIEw.findVIEwByID(R.ID.cardvIEw);
}
}
}
这是我在 recyclervIEw 中的项目代码:
package anotherChALLENge.example.criminalactivity;
public class Itemmodel {
int image;
int id;
public int getimage() {
return image;
}
public voID setimage(int imagE) {
this.image = image;
}
public int getID() {
return ID;
}
public voID setID(int id) {
this.ID = ID;
}
}
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的如何在recyclerview中只选择一项?全部内容,希望文章能够帮你解决如何在recyclerview中只选择一项?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。