在Recyclerview中突出显示行的问题

时间:2019-02-06 08:00:10

标签: java android android-recyclerview

我想突出显示正在音乐播放器中播放的recyclerview的活动行。

    @Override
    public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
        viewHolder.txt1.setText(data.get(i).get("text1").toString());
        viewHolder.txt2.setText(data.get(i).get("text2").toString());

        try{
            if(data.get(i).get("text1").toString().equals("Alan Walker - Alone")){
             viewHolder.txt1.setTextColor(context.getColor(R.color.activeText));

            }
        }catch (Exception e){}
}

在以下示例中,数据只是歌曲列表。我只是想选择“ Alan Walker-Alone”,但问题是

pic 1

pic 2

其他一些行也突出显示了..有什么解决办法吗?

1 个答案:

答案 0 :(得分:3)

RecyclerView回收旧项目以创建新项目。因此,每当在if中使用onBindViewHolder()条件时,还必须使用else

因此您的代码如下:

if(data.get(i).get("text1").toString().equals("Alan Walker - Alone")){
    viewHolder.txt1.setTextColor(context.getColor(R.color.activeText));
} else {
    viewHolder.txt1.setTextColor(/*Default text color*/);
}