问题描述
我正在使用material design,as Exposed Dropdown Menus中实现的AutoCompleteTextView
作为Spinner。我正在尝试设置一个默认值,但是它不起作用。
我有一个值数组,必须在该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
}
})