![](/img/trans.png)
[英]Android Listview in AutocompleteTextview not responding
[英]Android AutoCompleteTextView For Mentioning People
目前,我正在與android合作開發社交媒體應用。 在此應用程序中,我想允許用戶互相提及(例如在twitter,fb,instagram等中)。 我試圖使用AutoCompleteTextView。 但是,它僅顯示建議的第一個單詞,而不顯示下一個單詞。
例如,在當前系統中:如果我輸入:第一個單詞“ @ab”,那么它將顯示建議列表。 但是,當我鍵入:“ hi,@ab”時,它將不會顯示任何建議。
任何人都知道如何解決此問題並提供一些示例嗎? 這是我在應用程序中創建AutoCompleteTextVIew的方法:
AutoCompleteTextView et_comment = new AutoCompleteTextView(context);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,
android.R.layout.simple_dropdown_item_1line, user_follow);
et_comment.setAdapter(adapter);
非常感謝。
您需要重寫getFilter()方法。
adapterSearchProducts = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, listProductName) {
@Override
public Filter getFilter() {
// TODO Auto-generated method stub
Log.i(TAG, "getFilter()");
return myFilter;
}
};
給您概念過濾器類,並在其中使用字符串做一些魔術。
/*
* Custom filter
*/
Filter myFilter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
Log.i(TAG, "constraint = " + constraint);
FilterResults filterResults = new FilterResults();
/**
* Do your work here. Play with constraint.
* Make tmp array list and work with it
*/
// following two lines is very important
// as publish result can only take FilterResults objects
synchronized (this) {
filterResults.values = "array-list";
filterResults.count = "array-list-size";
Log.i(TAG, "filterResults.count == " + filterResults.count);
}
return filterResults;
}
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence contraint,
FilterResults results) {
if (results != null && results.count > 0) {
Log.i(TAG, "results.count > 0 :: " + results.count);
listProductName.clear(); // clear your original array list
listProductName.addAll((List<String>) results.values);
// add all tmp result to original result
adapterSearchProducts.notifyDataSetChanged();
// notify your data set change
} else {
Log.i(TAG, "results.count <= 0 :: " + results.count);
adapterSearchProducts.notifyDataSetInvalidated();
}
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.