我的recyclerview存在问题。 基本上,它的适配器是一个分类列表,当满足某个条件时,项目名称左侧会出现一个彩色勾号。
我的问题是,这个勾号有时会随机出现在它不应出现的项目上。通常当我向下滚动列表时,然后回到顶部。
RecyclerView with the correct ticks
After i scroll down and back up, the second item gets the tick, although it shouldn't
这是适配器的onBindViewHolder:
@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
[...]
SharedPreferences prefcorsi = contesto.getSharedPreferences(Costanti.ISCRIZIONECORSI,Context.MODE_PRIVATE);
SharedPreferences prefgruppi = contesto.getSharedPreferences(Costanti.ISCRIZIONEGRUPPI,Context.MODE_PRIVATE);
if (evento.getIdgruppo() > 0 && prefgruppi.getInt(Integer.toString(evento.getIdgruppo()),0) > 0) {
holder.checkiscritto.setVisibility(View.VISIBLE);
Log.w("Iscritto gruppo adapter",evento.getTitolo());
} else if (prefcorsi.getInt(Integer.toString(evento.getId()),0) > 0 && evento.getStatoiscrizione() > 0) {
holder.checkiscritto.setVisibility(View.VISIBLE);
Log.w("Iscritto da adapter",evento.getTitolo());
}
我100%肯定这不是其他地方的问题,因为 1)Log.w没有显示有缺陷的项目,它只是在它旁边出现。 2)Sharedpreferences和object的getter返回正确的值。
这可能是一个错误,或者可能需要处理的项目太多了吗?