数据绑定:无法将 ArrayAdpater 绑定到 AppCompatAutoCompleteTextView
Data binding: Cannot bind ArrayAdpater to AppCompatAutoCompleteTextView
我的 layout.xml 文件中有一个 AppCompatAutoCompleteTextView,就像这样
<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 ****
但是,如果我从 layout.xml 文件中删除 android:adapter
行,并直接从 activity 设置绑定,它就可以正常工作。像这样,
AppCompatAutoCompleteTextView warehouseDropdown = findViewById(R.id.warehouseDropdown);
warehouseDropdown.setAdapter(viewModel.getWarehouseAdapter());
我已经尝试清除 IDE 生成的文件,如下所示:
。即使这样似乎也不能解决我的问题。
msg:Cannot find the setter for attribute 'android:adapter' with
parameter type android.widget.ArrayAdapter on
android.support.v7.widget.AppCompatAutoCompleteTextView
如其所说,我看了AutoCompleteTextViewBindingAdapter
。并且找不到任何与 android:adapter
命名空间相关的 BindingAdapter。他们还没有定义它。
如果需要,您可以创建自己的Binding Adapter。
@BindingAdapter("android:adapter")
public static void setAutoCompleteAdapter(AutoCompleteTextView textView, ArrayAdapter adapter) {
textView.setAdapter(adapter);
}
我的 layout.xml 文件中有一个 AppCompatAutoCompleteTextView,就像这样
<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 ****
但是,如果我从 layout.xml 文件中删除 android:adapter
行,并直接从 activity 设置绑定,它就可以正常工作。像这样,
AppCompatAutoCompleteTextView warehouseDropdown = findViewById(R.id.warehouseDropdown);
warehouseDropdown.setAdapter(viewModel.getWarehouseAdapter());
我已经尝试清除 IDE 生成的文件,如下所示:
msg:Cannot find the setter for attribute 'android:adapter' with parameter type android.widget.ArrayAdapter on android.support.v7.widget.AppCompatAutoCompleteTextView
如其所说,我看了AutoCompleteTextViewBindingAdapter
。并且找不到任何与 android:adapter
命名空间相关的 BindingAdapter。他们还没有定义它。
如果需要,您可以创建自己的Binding Adapter。
@BindingAdapter("android:adapter")
public static void setAutoCompleteAdapter(AutoCompleteTextView textView, ArrayAdapter adapter) {
textView.setAdapter(adapter);
}