AutoCompleteTextView 项目选择触发事件
Posted
技术标签:
【中文标题】AutoCompleteTextView 项目选择触发事件【英文标题】:AutoCompleteTextView Item selection trigger event 【发布时间】:2021-06-27 20:04:06 【问题描述】:我希望在从 AutoCompleteTextView
中选择项目时禁用 TextInputLayout 上的错误
这是关于 AdapterView.OnItemClickListener 的谷歌文档。 https://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener
在我的片段onCreateView
方法中我有
View view = inflater.inflate(R.layout.fragment_currency_picker, container, false);
TextInputLayout mtextInputLayout= view.findViewById(R.id.currencyTIL);
List<String> currenciesAvailable = Arrays.asList(getResources().getStringArray(R.array.currencies_array));
ArrayAdapter adapter = new ArrayAdapter(getContext(), R.layout.dropdown_currency_item, currenciesAvailable);
AutoCompleteTextView autoComplete = view.findViewById(R.id.AutoCompTxtView);
autoComplete.setAdapter(adapter);
autoComplete.setOnItemSelectedListener(this);
在我的片段中我也实现了
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
Log.d("TEST", "XYZ");
@Override
public void onNothingSelected(AdapterView<?> parent)
我似乎无法触发 onItemSelected。最终我想打电话
mtextInputLayout.setErrorEnabled(false);
【问题讨论】:
【参考方案1】:使用 setOnItemClickListener
监听器:
autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id)
//do something...
);
由于您使用的是材质组件主题,因此AutoCompleteTextView
在运行时会被MaterialAutoCompleteTextView
替换。
当您选择弹出窗口中的项目时,您可以检查code,调用OnItemClickListener
接口。
【讨论】:
【参考方案2】:当你点击适配器上的一个项目时,它不是一个选择,而是一个点击事件
通过在单击侦听器上添加mtextInputLayout.setError(null)
来消除单击项目时的错误:
autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
mtextInputLayout.setError(null);
);
【讨论】:
以上是关于AutoCompleteTextView 项目选择触发事件的主要内容,如果未能解决你的问题,请参考以下文章
AutoCompleteTextView搭配PoiSearch的使用
AutocompleteTextView 建议总是选择建议中的第一项
AutoCompleteTextView onItemClick 使用 HashMap 的项目位置或 id
如何在 AutoCompleteTextView 中定位光标
AutoCompleteTextView - 我正在使用autocompletetextview,它显示来自API的值(返回名称和代码)