Tujuh tahun kemudian, teman-teman, masalahnya tetap sama. Ini adalah kelas dengan fungsi yang memaksa pop-up bodoh itu muncul sendiri dalam kondisi apa pun. Yang perlu Anda lakukan adalah mengatur adaptor ke AutoCompleteTextView Anda, menambahkan beberapa data ke dalamnya, dan memanggil showDropdownNow()
fungsi kapan saja.
Kredit ke @David Vávra. Itu berdasarkan kodenya.
import android.content.Context
import android.util.AttributeSet
import android.widget.AutoCompleteTextView
class InstantAutoCompleteTextView : AutoCompleteTextView {
constructor(context: Context) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
override fun enoughToFilter(): Boolean {
return true
}
fun showDropdownNow() {
if (adapter != null) {
// Remember a current text
val savedText = text
// Set empty text and perform filtering. As the result we restore all items inside of
// a filter's internal item collection.
setText(null, true)
// Set back the saved text and DO NOT perform filtering. As the result of these steps
// we have a text shown in UI, and what is more important we have items not filtered
setText(savedText, false)
// Move cursor to the end of a text
setSelection(text.length)
// Now we can show a dropdown with full list of options not filtered by displayed text
performFiltering(null, 0)
}
}
}