Вопрос

У меня проблема с классом "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, что означает либо:

  1. У вас нет виджета в вашей строке с android:id="@+id/title", или
  2. У вас нет столбца в вашем результирующем наборе с именем SBooksDbAdapter.KEY_TITLE, или
  3. Каким-то образом вы создаете строки без держателя в своем теге
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top