Android AutoCompleteTextView setText过滤器始终为true

问题描述

我正在使用material design,as Exposed Dropdown Menus中实现的AutoCompleteTextView作为Spinner。我正在尝试设置一个认值,但是它不起作用。

k

]

我有一个值数组,必须在该AutoCompleteTextView中进行设置。

val TYPE_OF_LANGUAGES = arrayOf("C","C++","Java","Python","Pearl","Kotlin")

// Set the Language adapter
val adapter: ArrayAdapter<String?> = ArrayAdapter<String?>(
     context,R.layout.spinner,TYPE_OF_LANGUAGES
)
binding.spinner.apply {
        this.setText(adapter.getItem(0).toString(),false)
        this.setAdapter(adapter)
}

这行代码

 this.setText(adapter.getItem(2).toString(),false)

将第三个项目设置为“ Java”,但是在单击AutoCompleteTextView时,在下拉菜单中我只能看到“ Java”,甚至将过滤器设置为false

解决方法

AutoCompleteTextView 添加简单的 TouchListener 。 下面的代码对我来说很好。试试这个

spinner.setOnTouchListener(object : View.OnTouchListener {
            override fun onTouch(v: View?,event: MotionEvent?): Boolean {
                spinner.showDropDown()
                return v?.onTouchEvent(event) ?: true
            }
        })