[英]Don't set text value to AutoCompleteTextView on item click
我的屏幕上有一個AutocompleteTextView。 默認情況下,當用戶單擊autocompletetextviews的下拉菜單項時,會將此autocompletetextview的文本設置為該選定項的值。
有什么辦法可以禁用此功能? 因此,當用戶單擊下拉項時,僅觸發了onItemClickListener
嗎?
在onItemClickListener
值設置為“”不是一個選項。
autoCompleteTextView.setOnItemClickListener { adapterView, view, i, l ->
autoCompleteTextView.setText("")
}
因為我需要不觸發TextWatcher
AutoCompleteTextView
使用此類來檢測對其下拉列表的點擊:
private class DropDownItemClickListener implements AdapterView.OnItemClickListener {
public void onItemClick(AdapterView parent, View v, int position, long id) {
performCompletion(v, position, id);
}
}
在該performCompletion()
方法內部,存在此調用以實際更改TextView的內容:
replaceText(convertSelectionToString(selectedItem));
此replaceText()
方法是protected
,這意味着您可以創建AutoCompleteTextView
的子類並將其覆蓋以不執行任何操作:
public class MyAutoCompleteTextView extends AppCompatAutoCompleteTextView {
public MyAutoCompleteTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void replaceText(CharSequence text) {
// do nothing
}
}
現在,只需將您的<AutoCompleteTextView>
標記替換為<com.example.yourprojecthere.MyAutoCompleteTextView>
標記,您<com.example.yourprojecthere.MyAutoCompleteTextView>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.