这是我的解决方案。
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;
}
}
因为我从服务器获取数据。所以在performFiltering
,我只是返回一个非空对象。
希望对你有帮助。
,你必须做一些错误的,因为通常ACTV犯规解雇[AutoCompleteTextView隐藏和适配器上的变化显示下拉(的下拉 – pskink
可能重复http://stackoverflow.com/questions/11010442/autocompletetextview-hide-and-show-dropdown-on-adapter-change) – mixel
在这里看到我的解决方案http://stackoverflow.com/questions/11010442/autocompletetextview-hide-and-show-dropdown-on-adapter-更改/ 31503409#31503409 – mixel