首页 > 解决方案 > 如果不建议输入选项,则清除 AutoCompleteTextView

问题描述

我试图让用户输入以便他得到建议,但我不想让他完成输入,而是希望他选择一个选项。

这样做的原因是我需要获取所选选项的 ID(在这种情况下,id 是对象属性,而不是列表元素的 ID),如果未通过单击选择项目,我不知道该怎么做。

我曾尝试使用 onFocusChanged 方法,但似乎 autoComplete 控件不会失去焦点。尝试将以下选项添加到父级,但不起作用。

android:focusable="true"
android:focusableInTouchMode="true"

onFocusChange 代码:

mAutoCompleteTextView.setOnFocusChangeListener((v, hasFocus) -> {
        if (!hasFocus) {
            String str = mAutoCompleteTextView.getText().toString();
            CustomListAdapter listAdapter = (CustomListAdapter) mAutoCompleteTextView.getAdapter();
            for (int i = 0; i < listAdapter.getCount(); i++) {
                String temp = listAdapter.getItem(i).getName();
                if  (str.compareTo(temp) == 0) {
                        return;
                    }
                }

                mAutoCompleteTextView.setText("");
            }
    });

即使单击其他元素,侦听器也不会触发。

标签: javaandroid

解决方案


推荐阅读