自动完成文本视图 - 禁用筛选
2022-09-02 14:20:59
我正在从 中检索字符串列表,并且我想将它们列在 a 上,而不考虑内置筛选器。webservice
AutoCompleteTextField
AutoCompleteTextField
我该怎么做?有没有办法轻松禁用它的内部过滤(最好没有子类化),我已经将所有结果加载到一个中,问题是其中一些由于过滤而没有显示。ArrayAdapter
如果我走错了方向,请给我指出正确的方向。
我正在从 中检索字符串列表,并且我想将它们列在 a 上,而不考虑内置筛选器。webservice
AutoCompleteTextField
AutoCompleteTextField
我该怎么做?有没有办法轻松禁用它的内部过滤(最好没有子类化),我已经将所有结果加载到一个中,问题是其中一些由于过滤而没有显示。ArrayAdapter
如果我走错了方向,请给我指出正确的方向。
可能@Alon意味着子类化,而不是 。在方法中,必须返回一个自定义筛选器,该筛选器根本不执行任何筛选(在其中)。可能性能可能是一个问题 - 因为读取是生成的。最好的办法是从TextEdit派生并实现自己的完成弹出窗口。但到目前为止,这对我来说又太麻烦了。最后,我做了如下事情,它对我有用。任何反馈赞赏。ArrayAdapter
AutoCompleteTextView
getFilter()
performFiltering()
public class KArrayAdapter<T>
extends ArrayAdapter<T>
{
private Filter filter = new KNoFilter();
public List<T> items;
@Override
public Filter getFilter() {
return filter;
}
public KArrayAdapter(Context context, int textViewResourceId,
List<T> objects) {
super(context, textViewResourceId, objects);
Log.v("Krzys", "Adapter created " + filter);
items = objects;
}
private class KNoFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence arg0) {
FilterResults result = new FilterResults();
result.values = items;
result.count = items.size();
return result;
}
@Override
protected void publishResults(CharSequence arg0, FilterResults arg1) {
notifyDataSetChanged();
}
}
}
希望它有帮助。
将文本设置为“自动完成文本视图”时,请使用 。将过滤器设置为 false,这将在不激活过滤器的情况下设置文本setText(CharSequence text, boolean filter)