Проблема с классом “ViewHolder” в Android
-
19-09-2019 - |
Вопрос
У меня проблема с классом "ViewHolder".Я использую "ViewHolder" для улучшения речи при отображении списка.Я думаю, что код в порядке, но он выдает исключение, когда Я использую "setText" с данными из "Cursor".Вот мой код:
if(row==null){
LayoutInflater inflater = LayoutInflater.from(context);
row = inflater.inflate(R.layout.sbooks_row, null);
holder = new ViewHolder();
holder.id = (TextView)row.findViewById(R.id.id);
holder.title = (TextView)row.findViewById(R.id.title);
holder.icon = (ImageView)row.findViewById(R.id.icon);
row.setTag(holder);
}
else
{
holder = (ViewHolder)row.getTag();
}
holder.title.setText(cursor.getString(cursor.getColumnIndex(SBooksDbAdapter.KEY_TITLE)));
holder.id.setText(cursor.getString(cursor.getColumnIndex(SBooksDbAdapter.KEY_ROWID)));
Решение
Вы не говорите, что это за исключение.Я собираюсь предположить, что это NullPointerException
, что означает либо:
- У вас нет виджета в вашей строке с
android:id="@+id/title"
, или - У вас нет столбца в вашем результирующем наборе с именем
SBooksDbAdapter.KEY_TITLE
, или - Каким-то образом вы создаете строки без держателя в своем теге
Не связан с StackOverflow