在RecyclerView列表

时间:2018-04-03 08:44:32

标签: java android android-recyclerview onclick textview

我正在使用回收站视图来显示列表,它主要包含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是我在我的活动中使用的回调函数。

任何帮助将不胜感激谢谢。

2 个答案:

答案 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字段来突出显示文本