2012-12-03 3 views
0

Le pointeur NULL est levé après 1 cycle de getView. c'est-à-dire que le premier élément de la liste est bien retourné mais il se bloque sur le second.Mon adaptateur listview personnalisé lève une exception de pointeur nul Je ne comprends pas pourquoi

il est dit titulaire est null. faisant référence au bit holder.textName.setText(station).

Une idée pourquoi?

... 
static class StationHolder { 
     TextView textName; 
     ImageView imgStationImage; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View row = convertView; 
     StationHolder holder = null; 

     Typeface tfBoldCon = Typeface.createFromAsset(context.getAssets(), 
       "Roboto-BoldCondensed.ttf"); 
     Typeface tfCon = Typeface.createFromAsset(context.getAssets(), 
       "Roboto-Condensed.ttf"); 
     Typeface tfLight = Typeface.createFromAsset(context.getAssets(), 
       "Roboto-Light.ttf"); 

     if (row == null) { 
      LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
      row = inflater.inflate(viewResourceId, parent, false); 

      holder = new StationHolder(); 
      holder.textName = (TextView) row.findViewById(R.id.station_name); 
      holder.textName.setTypeface(tfCon); 
      holder.imgStationImage = (ImageView) row 
        .findViewById(R.id.station_image); 

     } else { 
      holder = (StationHolder) row.getTag(); 
     } 

     final String station = stations.get(position); 
     Log.i("", station); 

     if (station != null) { 
      holder.textName.setText(station); 
     } 
     return row; 
    } 
+0

Yikes! Vous créez trois Polices de caractères _every_ time 'getView()' est appelé ... faites ces variables de champ et initialisez-les _once_ dans le constructeur. De plus, vous n'utilisez qu'une seule police ... – Sam

Répondre

2

vous oublié

row.setTag(holder); 

après gonflage de la rangée et le réglage des valeurs de support.

De cette façon, lorsque vous réutilisez le row.tag, il est défini sur null.

Questions connexes