我從webservice
檢索字符串列表,並且我想將它們列在AutoCompleteTextField
上,而不管內置AutoCompleteTextField
過濾器。AutoCompleteTextView - 禁用過濾
我該怎麼做?有沒有一種方法可以很容易地禁用它的內部過濾(最好不需要子類化) 我已經將所有的結果加載到ArrayAdapter
中,問題在於它們中的一些因爲過濾而不顯示。
如果我要走錯方向,請指向正確的方向。
我從webservice
檢索字符串列表,並且我想將它們列在AutoCompleteTextField
上,而不管內置AutoCompleteTextField
過濾器。AutoCompleteTextView - 禁用過濾
我該怎麼做?有沒有一種方法可以很容易地禁用它的內部過濾(最好不需要子類化) 我已經將所有的結果加載到ArrayAdapter
中,問題在於它們中的一些因爲過濾而不顯示。
如果我要走錯方向,請指向正確的方向。
最終我將子類型ArrayAdapter
,在「文本更改」事件期間通過忽略它的getFilter
方法和製作我的HTTPRequest
來禁用濾鏡。
可能@Alon意思是繼承ArrayAdapter
,而不是AutoCompleteTextView
。在getFilter()
方法之一必須返回一個自定義過濾器,根本不執行過濾(在其performFiltering()
)。可能的表現可能是一個問題 - 因爲theread已經產生。最好的辦法是從TextEdit派生並實現自己的完成彈出窗口。但到目前爲止,這對我來說仍然是太麻煩了。最後,我做了一些如下的事情,它適用於我。任何反饋讚賞。
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();
}
}
}
希望它有幫助。
嗨,謝謝阿隆我也有同樣的概率。如果你可以發佈一些相關的代碼,我會很感激你。在此先感謝 –
請添加一些代碼或描述您的解決方案。 我完全停留在此。 –
@Rajivyadav很快會做 –