首页 > 解决方案 > Android AutoCompleteTextView setText 过滤器始终为真

问题描述

我使用AutoCompleteTextView作为材料设计中实现的 Spinner,作为 Exposed Dropdown Menus。我正在尝试设置默认值,但它不起作用。

ķ]

我有一个必须在其中设置的值数组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)

设置第 3 项“Java”,但在单击AutoCompleteTextView下拉菜单中的“我只能看到”“Java”时,即使过滤器设置为false.

标签: androidkotlindrop-down-menuandroid-spinnerautocompletetextview

解决方案


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

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

推荐阅读