Привязка данных: Невозможно привязать ArrayAdpater к AppCompatAutoCompleteTextView - PullRequest
0 голосов
/ 03 октября 2018

У меня AppCompatAutoCompleteTextView в моем файле layout.xml, например, так:

<android.support.v7.widget.AppCompatAutoCompleteTextView
    android:id="@+id/warehouseDropdown"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/warehouse"
    android:adapter="@{viewModel.warehouseAdapter}/>

Проблема в том, что при попытке построить проект я получаю следующую ошибку:

****/ data binding error ****msg:Cannot find the setter for attribute 'android:adapter' with parameter type android.widget.ArrayAdapter on android.support.v7.widget.AppCompatAutoCompleteTextView. file:.../app/src/main/res/layout/activity_scan.xml loc:52:43 - 52:68 ****\ data binding error ****

Но если я удалю строку android:adapter из файла layout.xml и установлю привязку непосредственно из действия, все будет работать нормально.Например,

AppCompatAutoCompleteTextView warehouseDropdown = findViewById(R.id.warehouseDropdown);
warehouseDropdown.setAdapter(viewModel.getWarehouseAdapter());

Я уже пытался очистить сгенерированные IDE файлы, как сказано здесь: Привязка к слушателю;Не удается найти сеттера .Даже это, похоже, не решает мою проблему.

1 Ответ

0 голосов
/ 03 октября 2018

msg: не удается найти установщик для атрибута «android: адаптер» с типом параметра android.widget.ArrayAdapter на android.support.v7.widget.AppCompatAutoCompleteTextView

Как говорится,Я посмотрел AutoCompleteTextViewBindingAdapter.и не удалось найти ни одного BindingAdapter, связанного с пространством имен android:adapter.Они еще не определили его.

Вы можете создать свой Binding Adapter , если хотите.

@BindingAdapter("android:adapter")
public static void setAutoCompleteAdapter(AutoCompleteTextView textView, ArrayAdapter adapter) {
    textView.setAdapter(adapter);
}
...