AutoCompleteTextView Item 选择触发事件
AutoCompleteTextView Item selection trigger event
我希望在从 AutoCompleteTextView
中选择项目时禁用 TextInputLayout 上的错误
这是关于 AdapterView.OnItemClickListener 的 google 文档。
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(假);
使用setOnItemClickListener
监听器:
autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
//do something...
}
});
由于您使用的是 Material 组件主题,因此 AutoCompleteTextView
在运行时被 MaterialAutoCompleteTextView
替换。
正如您可以在 code 中检查的那样,当弹出窗口中的项目被选中时,将调用 OnItemClickListener
界面。
当你点击适配器上的一个项目时,它不是一个选择而是一个点击事件
通过在点击侦听器上添加 mtextInputLayout.setError(null)
来消除点击项目时的错误:
autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mtextInputLayout.setError(null);
}
});
我希望在从 AutoCompleteTextView
这是关于 AdapterView.OnItemClickListener 的 google 文档。 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(假);
使用setOnItemClickListener
监听器:
autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
//do something...
}
});
由于您使用的是 Material 组件主题,因此 AutoCompleteTextView
在运行时被 MaterialAutoCompleteTextView
替换。
正如您可以在 code 中检查的那样,当弹出窗口中的项目被选中时,将调用 OnItemClickListener
界面。
当你点击适配器上的一个项目时,它不是一个选择而是一个点击事件
通过在点击侦听器上添加 mtextInputLayout.setError(null)
来消除点击项目时的错误:
autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mtextInputLayout.setError(null);
}
});