android - 数据绑定(bind) : Cannot bind ArrayAdpater to AppCompatAutoCompleteTextView

标签 android android-databinding

我的 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 设置绑定(bind),它就可以正常工作。像这样,

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

我已经尝试按照此处所述清除 IDE 生成的文件: Listener Binding; Cannot Find the Setter .即使这样似乎也无法解决我的问题。

最佳答案

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);
}

关于android - 数据绑定(bind) : Cannot bind ArrayAdpater to AppCompatAutoCompleteTextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52625778/

相关文章:

java - 解释用户文本输入的更好方法

Android 数据绑定(bind) build.gradle 同步问题?

android - 如何使用 android 中的数据绑定(bind)从 EditText 获取按钮单击的值?

android - 替换 Kotlin 中的 java 通用接口(interface)以进行数据绑定(bind)

android - 没有java代码的数据绑定(bind): View to view binding,

android - 如何抑制由未能生成的类引起的代码生成错误?

java - 如何确保主键值没有间隙,即使在删除之后也是如此?

android - 如果焦点是 edittext,则禁止滚动 recyclerview

android - 如何将文件(pdf、doc 等...)下载到 sdcard 并在 android 中使用 volley 打开文件?

android - 以编程方式启用 USB Tethering Android,无需用户交互