java.lang.ClassCastException:androidx.databinding.adapters.ObservableListAdapter无法转换为android.widget.ArrayAdapter

问题描述

我正在使用参考文献https://www.simplifiedcoding.net/android-spinner-with-search/

通过数据绑定实现带有搜索的微调框
 <com.app.nursery.ui.util.search.SearchableSpinner
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:entries="@{seedlingrequest.nurseries}"
                app:hintText="Select" />

当我使用此字符串数组中的 android:entries =“ @ array / subjects” 时,效果很好,但是当我使用viewmodel中的数据绑定 android:entries =“ @ {seedlingrequest.nurseries} “ 抛出此异常java.lang.classCastException: androidx.databinding.adapters.Observablelistadapter cannot be cast to android.widget.ArrayAdapter,我不知道什么是observablelistadapter

在setAdapter中获取错误

    override fun setAdapter(adapter: SpinnerAdapter) {
    if (!_isFromInit) {
        _arrayAdapter = adapter as ArrayAdapter<*>
        if (!TextUtils.isEmpty(_strHintText) && !_isDirty) {
            val arrayAdapter: ArrayAdapter<*> =
                ArrayAdapter<Any?>(
                    _context,android.R.layout.simple_list_item_1,arrayOf(
                        _strHintText
                    )
                )
            super.setAdapter(arrayAdapter)
        } else {
            super.setAdapter(adapter)
        }
    } else {
        _isFromInit = false
        super.setAdapter(adapter)
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)