Frage

habe ich ein Problem mit "ViewHolder" -Klasse. Ich benutze „ViewHolder“ meine Liste Anzeige Sprache zu verbessern. Ich denke, der Code ist in Ordnung, aber es löst eine Ausnahme, wenn  Ich verwende „setText“ mit Daten von „Cursor“. Hier ist mein 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)));
War es hilfreich?

Lösung

Sie nicht sagen, was die Ausnahme ist. Ich werde denke, es ist ein NullPointerException, das heißt entweder:

  1. Sie haben nicht einen Widget in Ihrer Reihe mit android:id="@+id/title" haben oder
  2. Sie können eine Spalte in Ihrem Ergebnis Set SBooksDbAdapter.KEY_TITLE genannt, oder
  3. Irgendwie Sie erstellen Reihen ohne Halter in seinem Tag
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top