我想突出显示正在音乐播放器中播放的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”,但问题是
其他一些行也突出显示了..有什么解决办法吗?
答案 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*/);
}