2010-06-07 87 views
0

我一直在實現一個類,該類擴展了ArrayAdapter並實現了Filterable。 過濾部分(在執行過濾方法()中)似乎正常,它會像預期的那樣填充FilterResults對象。 但後來我覺得我不是這樣做的權利如何公佈結果,ATM我:自定義過濾器Android不會告訴我結果

​​

但這根本不會「填充」我的清單與接收到的數據。 所以現在我的問題是如何填充我的列表與收到的結果?我必須以編程方式執行此操作嗎?

回答

1

其實我得到了它開發的下一個工作代碼:

subItems = (Vector<serverContentElement>)results.values; 

notifyDataSetChanged(); 
clear(); 
for(int i = 0; i < subItems.size(); i++) 
    add(subItems.get(i)); 

對我來說,這一直是隻有這樣,才能得到它的工作...只是一種恥辱,有沒有很簡潔的例子上網...

1

我有過同樣的問題。 嘗試更加aggresive:

protected void publishResults(CharSequence prefix, FilterResults results) 
    { 
    // NOTE: this function is *always* called from the UI thread. 
    subItems.clear(); 
    subItems.addAll((Vector<T>)results.values); 
    notifyDataSetChanged(); 

    } 

很顯然,我認爲你的「結果」的對象包含了正確的數據

這種方法解決了我的問題

+0

還有一個問題:它實際上是簡單地用結果元素替換現有的List元素嗎?所以我不必重做所有getView()方法的東西吧?因爲我沒有爲我的列表使用簡單的標準元素! – TiGer 2010-06-08 07:03:14