我正在使用回收站视图来显示列表,它主要包含id和值。现在当我点击列表中的项目时,只有值应该变为粗体或突出显示,如果我选择任何其他项目,则先前突出显示的项目应该变为正常,并且所选项目应该变为粗体。
我能够突出显示该值(基本上它是一个文本视图)。但问题是如果我选择任何其他项目,它不会删除先前选择的项目粗体。
以下是一段代码,点击项目值时,它会加粗值
final ReturnPackageModel model = PackagesList.get(position);
...........................................................
...........................................................
holder.packageId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mTextClickListener.onTextClick(view,position,PackagesList);
holder.packageId.setTypeface(null, Typeface.BOLD);
model.setTapped(true);
}
});
onTextClick是我在我的活动中使用的回调函数。
任何帮助将不胜感激谢谢。
答案 0 :(得分:1)
只要您点按其中一个项目,就会将列表中其他项目的点按状态设置为false
。
holder.packageId.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mTextClickListener.onTextClick(view,position,PackagesList);
holder.packageId.setTypeface(null, Typeface.BOLD);
model.setTapped(true);
for (int i = 0; i < MyList.size(); i++) {
ReturnPackageModel model1= PackagesList.get(i);
if(position != i){
model.setTapped(false);
notifyDatasetChanged()
}
}
}
});
答案 1 :(得分:0)
我建议您使用数据模型来跟踪选择索引,方法是在模型中放置一个布尔字段 isSelect ,在适配器中放置一个整数字段 lastSelected
when click at i
list(i).setIsSelect(true)
list(lastSelected).setIsSelect(false)
notifyItemChangedAt(i)
notifyItemChangedAt(lastSelected)
lastSelected = i
现在在绑定视图方法中使用s = isSelect字段来突出显示文本