【发布时间】:2012-03-24 18:50:34
【问题描述】:
这是我的自定义 ArrayAdapter
public class CustomAdapater extends ArrayAdapter implements Filterable {
private ArrayList<String> mData;
private ArrayList<String> orig;
private ArrayList<String> suggestions;
LayoutInflater inflater;
@SuppressWarnings("unchecked")
public CustomAdapater(Context context, int textViewResourceId,ArrayList<String> al) {
super(context,textViewResourceId,al);
inflater = LayoutInflater.from(context);
mData = al;
orig = (ArrayList<String>)mData.clone();
this.suggestions = new ArrayList<String>();
}
@Override
public int getCount() {
return suggestions.size();
}
@Override
public Object getItem(int position) {
return suggestions.get(position);
}
@Override
public Filter getFilter() {
Filter myFilter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults filterResults = new FilterResults();
if(constraint != null) {
suggestions.clear();
for(String s:orig){
if(s!=null && s.contains(constraint))
suggestions.add(s);
}
filterResults.values = suggestions;
filterResults.count = suggestions.size();
}
return filterResults;
}
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence contraint, FilterResults results) {
mData = (ArrayList<String>)results.values;
notifyDataSetChanged();
}
};
return myFilter;
}
}
我将此应用于自动完成字段。默认情况下,以搜索字符串开头的自动完成搜索列表。我想要包含搜索字符串的列表。
【问题讨论】:
标签: android autocomplete android-arrayadapter