簡體   English   中英

AutoCompleteTextView 項目選擇觸發事件

[英]AutoCompleteTextView Item selection trigger event

當從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);

使用setOnItemClickListener監聽器:

autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        //do something...
    }
});

由於您使用的是材質組件主題,因此AutoCompleteTextView在運行時被MaterialAutoCompleteTextView替換。

您可以在選擇 Popup 中的項目時檢查代碼,調用OnItemClickListener接口。

當您單擊適配器上的項目時,它不是選擇,而是單擊事件

通過在單擊偵聽器上添加mtextInputLayout.setError(null)來刪除單擊項目時的錯誤:

autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        mtextInputLayout.setError(null);
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM