Android - arrayAdapter refresh row

如果在固定大小的情況下還是建議使用BaseAdapter
但在大小未知的狀況下還是使用arrayAdapter比較適當
arrayAdapter有著四大常用的功能add(新增一筆到最後)、insert(新增一筆到指定位置)、remove(刪除最後一筆)、clear(全部清除)
但是每次新增的時候如果沒有讓getView作reDraw的動作並不會出現
或許新增的時候並不在畫面中沒有感覺
但新增或刪除在畫面中沒反應會造成使用上的困擾
廢話好像有點多...

如果只是想要做一般的reDraw
也就是將整個arrayAdapter刷新只需要使用下面這行即可
用了這個會全部重新繪製(也就是會跳回最開頭)
ListView.setAdapter(arrayAdapter);


如果想要保留在畫面中但是又更新請使用下面這兩行
用NotifyChange的方式告訴arrayAdapter資料更新
arrayAdapter.notifyDataSetChanged();
arrayAdapter.setNotifyOnChange(true);


此方法不僅在一般的ListView可以使用
在自動完成(AutoCompleteTextView)也一樣可以使用
做出類似google搜尋輸入時的建議搜尋


標題為啥要用英文定...因為我也不知道該怎樣比較適當的翻譯成中文一一

參考資料
Android Developer
Android - ArrayAdapter
Android - ListView

沒有留言:

張貼留言