突出显示 RecyclerView 列表中的 textview

Highlight textview inside RecyclerView list

我正在使用回收器视图来显示列表,它主要包含一个 ID 和值。现在,当我单击列表中的项目时,只有值应该变为粗体或突出显示,如果我 select 任何其他项目,先前突出显示的项目应该变为正常,并且 selected 项目应该变为粗体。

我可以突出显示值(基本上是文本视图)。但问题是,如果我 select 任何其他项目,它不会删除以前 selected 项目粗体。

以下是一段代码,点击项目值时它会将值加粗

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 是我在 activity 中使用的回调函数。

如有任何帮助,将不胜感激谢谢。

我建议您通过在模型中放置一个布尔字段 isSelect 和一个整数字段 lastSelected[=17= 来使用您的数据模型来跟踪选择索引] 在适配器中

 when click at i
      list(i).setIsSelect(true)
      list(lastSelected).setIsSelect(false)
      notifyItemChangedAt(i)
      notifyItemChangedAt(lastSelected)
      lastSelected = i 

现在在绑定视图方法中使用 s=isSelect 字段来突出显示文本

将列表中其他项目的点击状态设置为 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()
                }
            }
        }
    });