我的屏幕上有一个AutocompleteTextView。默认情况下,当用户单击autocompletetextviews的下拉菜单项时,会将此autocompletetextview的文本设置为该选定项的值。
有什么方法可以禁用此功能吗?因此,当用户点击下拉菜单项时,仅触发app.post('/customer', (req, res) => {
flg.lookup(req.body.id); <---- How do I access what this imported function returns?
eg, console.log(result of flg.lookup)
res.render('index', {customerEmail:'test5@test5.com'});
});
吗?
不能在onItemClickListener
中将值设置为“”。
onItemClickListener
因为我需要不触发我的autoCompleteTextView.setOnItemClickListener { adapterView, view, i, l ->
autoCompleteTextView.setText("")
}
答案 0 :(得分:3)
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>
标签,您就应该准备就绪。