Próbuję użyć Android's Data Binding features z niestandardowym adapterem i listView. Mam problemy z przesłanianie getView
metoda niestandardowe adaptera:Powiązanie danych Androida z niestandardowym adapterem
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?
}
}
Więc moje pytania to:
- Gdzie mogę dostać element
View
że powinienem wracać? Lub innymi słowy, w jaki sposób mogę powiązać obiekt z zawyżonym/przekonwertowanym widokiem? - Jak mogę ponownie użyć
convertView
podczas korzystania z powiązania danych? - Czy to jest właściwy sposób wdrożenia tego? Przewodnik nie jest bardzo jasne, na ListViews
Oto jedyne odniesienie ListViews w przewodniku:
Jeśli używasz wiążące elementy wewnątrz ListView lub adaptera RecyclerView danych, może wolisz używać:
ListItemBinding binding = ListItemBinding.inflate(layoutInflater, viewGroup, false); //or ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);
nie wiem dlaczego, ale to jest nie działa dla mnie, gdy używam adaptera kursora –
@AmanSinghal jaki błąd otrzymujesz? – sergi
@sergi dlaczego sprawdzasz, czy convertView ma wartość null? – Thalatta