2012-07-26 78 views
1

局勢:
我有一個微調和BaseAdapter列表的活動。獲取ListView以重新加載其視圖

該列表加載一次,並顯示正確...但是,當我點擊微調以更改基礎數據並致電adapter.notifyDataSetChanged();列表不刷新。

通過這個我的意思是數據被改變,適配器有正確的數據,只是listView不會改變視圖。

如何強制listViews顯示正確的數據?

+0

調用notifyDataSetChanged()後,您應該看到適配器getView()爲每個可見行調用。如果您使用「contentView」並且不重置值,除非您滾動,否則不會看到值更新。 – CSmith 2012-07-26 14:07:31

回答

2

嘗試adapter.notifyDataSetInvalidated();以及adapter.notifyDataSetChanged();


編輯: 清除您的ArrayList或你的東西添加更多項目,像之前和.clear();然後添加新項目,並呼籲任何你正在使用adapter.notifyDataSetChanged();

+0

只有notifyDataSetChanged()真的需要 – CSmith 2012-07-26 14:05:08

+0

剛試過這個不行,我得到舊列表+隨機(?)插入的行。不太瞭解它背後的邏輯。 而只是notifyDataSetChanged()根本不會改變任何東西。 – Sam 2012-07-26 14:05:38

+0

請參閱編輯我的答案 – 2012-07-26 14:08:55

0

嘗試

myListView.invalidateViews(); 
+0

這與託德戴維斯的答案有同樣的結果 – Sam 2012-07-26 14:07:36