如何制作自定义AutocompleteTextView并保留默认布局

时间:2019-01-26 18:41:10

标签: android autocompletetextview

我正在尝试实现一个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

甚至无法使用... 我无法单击它,没有编辑文本。

我在做什么错?

0 个答案:

没有答案