У меня есть ListView, который отображает некоторые результаты из БД через CursorAdapter ... Название, текст и флаг, чтобы указать, просмотрел ли пользователь этот элемент (путем их другой экран) ... В принципе, если значение «посещенного» БД равно 0, ему необходимо отобразить маленький «новый» значок рядом с элементом ... Если нет, он не должен показывать значок ...Android - Исходный код ImageView в ListView
Проблема заключается в том, что когда он загружает список, он присваивает флаг, казалось бы, случайным образом ... У посещаемых нет флага, но некоторые невидимые тоже пропускают флаг ...
Я попытался переместить «посещенная» проверка между BindView и NewView, но я получаю те же результаты ...
Мой адаптер:
public class newsAdapter extends CursorAdapter{
public newsAdapter(Context context, Cursor cursor){
super(context, cursor);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView title = (TextView) view.findViewById(R.id.newsItemTitle);
TextView text = (TextView) view.findViewById(R.id.newsItemText);
ImageView newflag = (ImageView) view.findViewById(R.id.newsNewFlag);
if(cursor.getInt(cursor.getColumnIndex("visited")) == 0){
Log.i("extra","Not visited yet");
newflag.setImageResource(R.drawable.icon_new);
}
title.setText(cursor.getString(cursor.getColumnIndex("title")));
text.setText(cursor.getString(cursor.getColumnIndex("text"))); iv);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.news_item, parent, false);
return view;
}
}
Я уверен, что данные правильны в БД ... Спасибо заранее!
Нет, ничего не изменилось ... – user1504495
У вас есть overrideen getView()? – Shubhayu
Нет, у меня нет, с чем мне его переопределить? – user1504495