Ich versuche Android's Data Binding features mit einem benutzerdefinierten Adapter und einem ListView zu verwenden. Ich habe Probleme beim Überschreiben der getView
Methode des benutzerdefinierten Adapter:Android Datenbindung mit benutzerdefinierten Adapter
public class ChecksAdapter extends ArrayAdapter<Check> {
public ChecksAdapter(Context context, ObservableList<Check> checks) {
super(context, R.layout.check, checks);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
CheckBinding binding = DataBindingUtil.inflate(
LayoutInflater.from(getContext()),
R.layout.check, parent, false);
binding.setCheck(this.getItem(position));
// Return what?
}
}
Also meine Fragen sind:
- Wo bekomme ich das
View
Element, das ich wiederkommen sollte? Oder mit anderen Worten, wie kann ich das Objekt an eine aufgeblasene/konvertierte Ansicht binden? - Wie kann ich
convertView
wiederverwenden, wenn Datenbindung verwendet wird? - Ist dies der richtige Weg, dies zu implementieren? Der Leitfaden ist nicht ganz klar auf Listviews
Hier ist die einzige Referenz von Listviews in der Führung:
Wenn Sie die Datenbindung Elemente in einem Listview oder RecyclerView-Adapter verwenden, können Sie verwenden möchten:
ListItemBinding binding = ListItemBinding.inflate(layoutInflater, viewGroup, false); //or ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);
ich weiß nicht, warum, aber das ist funktioniert nicht für mich, wenn ich einen Cursor-Adapter verwende –
@AmanSinghal welchen Fehler bekommen Sie? – sergi
@sergi warum überprüfen Sie, ob die convertView null ist? – Thalatta