1)創建CursorAdapter或SimpleCursorAdapter來呈現列表。如何在過濾器操作後在CursorAdapter上執行ListView setSelection(0)?
2)現在向下滾動列表中的一個位,所以你是不是在位置0
3)現在執行你已經創建一個CursorAdapter過濾器。
結果:
過濾器正確地更新數據和列表視圖與新的數據更新。
最大的問題是,列表位置/選擇停留在您之前的位置(如果新結果中有足夠的行)。
我想在我的過濾器中執行setSelection(0)以始終將位置設置爲0,但不知道如何去做。對明顯的任何建議?
dataAdapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
listView.setSelection(0);
return newCursor;
});
上述辦法並不由於爲setSelection工作()由數據被更新之前,光標交換。
的問題是數據變化在FilterQueryProvider的runQuery方法,這意味着我只能影響現有數據並返回新的數據,而不是由於數據的變化進行任何後期GUI更新觸發。 – Diegomontoya