gpt4 book ai didi

java - 不要在项目单击时将文本值设置为 AutoCompleteTextView

转载 作者:搜寻专家 更新时间:2023-11-01 07:42:32 25 4
gpt4 key购买 nike

我的屏幕上有一个 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> 的标签标签,您应该已经准备就绪。

关于java - 不要在项目单击时将文本值设置为 AutoCompleteTextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52931916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com