Question

J'ai un problème avec la classe « ViewHolder ». J'utilise « ViewHolder » pour améliorer mon discours d'affichage de la liste. Je pense que le code est correct, mais il émet une exception lorsque  J'utilise « setText » avec les données de « curseur ». Voici mon code:

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)));
Était-ce utile?

La solution

Vous ne dites pas ce que l'exception est. Je vais le deviner est un NullPointerException, ce qui signifie soit:

  1. Vous ne disposez pas d'un widget dans votre ligne avec android:id="@+id/title" ou
  2. Vous ne disposez pas d'une colonne dans le jeu de résultats nommé SBooksDbAdapter.KEY_TITLE, ou
  3. D'une certaine façon, vous créez des lignes sans support dans sa balise
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top