gpt4 book ai didi

android - AutoCompleteTextView 在文本更改时隐藏和显示下拉列表

转载 作者:行者123 更新时间:2023-11-29 21:22:45 25 4
gpt4 key购买 nike

我有一个显示推荐视频的 AutoCompleteTextView。当用户在其中输入文本时,我的应用程序根据文本用户类型从服务器获取数据。但是当用户更改文本(逐个字符输入)时,下拉列表会自动消失。然后我获取数据并再次显示下拉列表。所以我的下拉列表被关闭并立即显示。它会对用户造成不良影响(尤其是当用户快速键入时)
当用户更改文本时,如何避免下拉菜单被取消。这样当我从服务器获取数据时,我可以调用 myAdapter.notifyDataChanged()。

提前致谢。P/S:我听说一个解决方案是扩展 AutoCompleteTextView。但我不知道该怎么做。

最佳答案

在适配器中实现 Filterable,并使用 Filter。

试试这个:

public class ListAdapter extends ArrayAdapter<String> implements Filterable{


private List<String> listResult;

...
@Override
public Filter getFilter() {
Filter filter = new Filter() {

@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults filterResults = new FilterResults();
if (constraint != null) {
// Assign the data to the FilterResults
filterResults.values = listResult;
filterResults.count = listResult.size();
}
return filterResults;
}

@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
if (results != null && results.count > 0) {
notifyDataSetChanged();
}
else {
notifyDataSetInvalidated();
}
}};
return filter;
}
}

关于android - AutoCompleteTextView 在文本更改时隐藏和显示下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20542453/

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