Я пытаюсь использовать Android's Data Binding features с пользовательским адаптером и ListView. У меня возникли проблемы перекрывая getView
метода пользовательского адаптера:привязка данных Android к пользовательскому адаптеру
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?
}
}
Так что мои вопросы:
- Где я могу получить
View
элемент, который я должен возвращающимся? Или, другими словами, как я могу привязать объект к завышенному/преобразованному представлению? - Как я могу использовать
convertView
при использовании привязки данных? - Это правильный способ реализовать это? Руководство не очень понятно, на ListViews
Вот только ссылка ListViews в руководстве:
Если вы используете привязки данных элементов внутри ListView или RecyclerView адаптера, вы можете предпочесть использовать:
ListItemBinding binding = ListItemBinding.inflate(layoutInflater, viewGroup, false); //or ListItemBinding binding = DataBindingUtil.inflate(layoutInflater, R.layout.list_item, viewGroup, false);
я не знаю, почему, но это не работает для меня, когда я использую адаптер курсора –
@AmanSinghal, какую ошибку вы получаете? – sergi
@sergi Почему вы проверяете, является ли convertView нулевым? – Thalatta