android ListView load more data

手機小小的,不可能ListView第一次長出來就呈現所有data
無論是要透過下拉刷新,或是其他操作模式去取得更多資料,都要該要能做到原始資料保持在ListView上,新資料往後append的效果。作法如下

ListView mListView;
MyAdapter mAdapter ;

第一次用
mListView.setAdapter(mAdapter);

第二次~第N次要append新資料
mAdapter.addAll(新資料);
mAdapter.notifyDataSetChanged();

絕對不要這樣寫
((MyAdapter) mListView.getAdapter()).addAll(新資料);
((MyAdapter)mListView.getAdapter()).notifyDataSetChanged();
因為(MyAdapter) mListView.getAdapter()取出來的並不是mAdapter,似乎是ListView的HeaderViewListAdapter
錯誤大概會是下列這類訊息
java.lang.ClassCastException: android.widget.HeaderViewListAdapter cannot be cast to MyAdapter


沒有留言: