我正在尝试实现一个autocompleteTextView,如果没有搜索,则显示所有结果;如果有搜索,则显示包含搜索的结果。
如果可能的话,所有这些都使用autocompleteTextView的默认Ui(因为我喜欢它,并且我更喜欢使用新功能)
这里是我所拥有的:
fun setUpIngredientTypeAutoComplete() {
val activityContext = activity?.applicationContext
if (activityContext != null) {
val adapter = IngredientTypesAdapter(activityContext,
android.R.layout.simple_dropdown_item_1line,
ingredientTypes)
val textView =
dialogView.findViewById<InstantAutoCompleteTextView>
(R.id.ingredient_type)
textView.setAdapter<ArrayAdapter<String>>(adapter)
}
}
我的arrayAdapter:
class IngredientTypesAdapter(context: Context, resource: Int, var
ingredientTypes: List<String>): ArrayAdapter<String>(context, resource,
ingredientTypes) {
override fun getFilter(): Filter {
return object : Filter() {
override fun performFiltering(constraint: CharSequence?):
FilterResults {
val filterResults = FilterResults()
if (constraint != null) {
val matchingTypes = ingredientTypes.filter { type ->
type.contains(constraint)
}
filterResults.values = matchingTypes
filterResults.count = matchingTypes.size
}
return filterResults
}
override fun publishResults(contraint: CharSequence, results:
FilterResults?) {
if (results != null && results.count > 0) {
notifyDataSetChanged()
} else {
notifyDataSetInvalidated()
}
}
}
}
}
我的自定义autocompleteTextView:
class InstantAutoCompleteTextView(context: Context, attrs: AttributeSet?,
defStyle: Int, defStyleRes: Int): AutoCompleteTextView(context, attrs,
defStyle) {
constructor(context: Context): this(context, null, 0)
constructor(context: Context, attrs: AttributeSet): this(context, attrs, 0)
}
这就是我得到的: !(https://ibb.co/4Skx1Gn)
甚至无法使用... 我无法单击它,没有编辑文本。
我在做什么错?