Ive得到具有ArrayAdapter和過濾器的ListActivity。我想填補一個ArrayAdapter的項目了,對結果進行篩選,然後顯示出來。無論出於何種原因,有一些奇特的線程回事,迫使結果,而不首先應用過濾器來顯示,然後將其過濾。因此,您可以在十分之一秒內看到未過濾的結果。在ListActivity安卓:ListActivity和ArrayAdapter - 顯示列表前整理
private Runnable returnRes = new Runnable() {
public void run() {
if (promotionItems != null && promotionItems.size() > 0) {
for (int i = 0; i < promotionItems.size(); i++)
m_adapter.add(promotionItems.get(i));
}
m_adapter.getFilter().filter(filterString);
m_adapter.notifyDataSetChanged();
m_ProgressDialog.dismiss();
}
};
我想你可以交替進行篩選的適配器外部,然後把它們一旦他們準備好了。我不知道爲什麼更改顯示你撥打電話到notifyDatasetChanged()之前 – dmon 2011-05-07 23:39:40
別忘了你不能從另一個線程修改UI。也許在該線程中調用notifydataset是個問題。嘗試使用處理程序並在那裏更新。 – sgarman 2011-05-08 00:10:24