ich eine benutzerdefinierte BaseAdapter
Klasse erschaffe,Warum gibt der Basisparameter einen Fehler im Layout-Inflator?
public class CustomAdapter extends BaseAdapter {
Context c;
ArrayList<String> items;
CustomAdapter(Context c,ArrayList<String> items)
{
this.c=c;
this.items=items;
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int i) {
return items.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v= view;
TextView tv;
LayoutInflater layoutInflater = (LayoutInflater)c
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewHolder pattern;
if(view==null)
{
v = layoutInflater.inflate(R.layout.dummy,viewGroup,true);
tv = (TextView)v.findViewById(R.id.textView);
pattern = new ViewHolder(v);
v.setTag(pattern);
}
else{
pattern = (ViewHolder)v.getTag();
return v;
}
pattern.tv.setText(items.get(i));
return v;
}
}
ich diesen Fehler erhalten,
addView(View, LayoutParams) is not supported in AdapterView
Es ist, weil ich ein true
in diesem Code bin vorbei,
v = layoutInflater.inflate(R.layout.dummy,viewGroup,true);
Meine Frage Warum gibt es einen Fehler, wenn wir hier wahr sind? Akzeptiert es nicht BaseAdapter
?
Der 2. Parameter ist das ListView richtig? Wie kann es der Adapterview sein? –
Weil eine ListView eine AdapterView Vererbung ist. ListView und seine Vorfahren überschreiben diese Methode nicht - wahrscheinlich, um Missbrauch zu verhindern;) –
Sie meinen also, wir können keine Ansicht zu einer Listenansicht oder einer Adapteransicht hinzufügen? –