Here is my solution.
public class CustomAutoCompleteTextView extends AutoCompleteTextView {
public CustomAutoCompleteTextView(Context context) {
this(context, null);
// TODO Auto-generated constructor stub
}
public CustomAutoCompleteTextView(Context context, AttributeSet attrs) {
this(context, attrs, android.R.attr.autoCompleteTextViewStyle);
}
public CustomAutoCompleteTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean enoughToFilter() {
// TODO Auto-generated method stub
return true;
}
}
public class SearchSuggestionAdapter extends ArrayAdapter<SearchObject>
{
.......
@Override
public Filter getFilter() {
// TODO Auto-generated method stub
Filter filter = new Filter() {
String keyword;
@Override
public CharSequence convertResultToString(Object resultValue) {
// TODO Auto-generated method stub
return keyword;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
// TODO Auto-generated method stub
if(results.values != null)
notifyDataSetChanged();
else
notifyDataSetInvalidated();
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
// TODO Auto-generated method stub
keyword = constraint.toString();
final FilterResults filterResults = new FilterResults();
filterResults.values = mList;
filterResults.count = mList.size();
return filterResults;
};
return filter;
}
}
Because I got data from the server. So in performFiltering
, I just return a non-null object.
Hope it helpful to you.