Pergunta

Eu tenho um problema com a classe "ViewHolder". Eu uso "ViewHolder" para melhorar o meu discurso de exibição Lista. Eu acho que o código é ok, mas ele lança exceção quando Eu estou usando "setText" com dados de "Cursor". Aqui está o meu código:

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)));
Foi útil?

Solução

Você não diz que a exceção é. Estou indo para adivinhar que é um NullPointerException, o que significa que ou:

  1. Você não tem um widget em sua linha com android:id="@+id/title", ou
  2. Você não tem uma coluna em seu resultado de conjunto nomeado SBooksDbAdapter.KEY_TITLE, ou
  3. De alguma forma você está criando linhas com nenhum detentor em sua tag
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top