麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Android > 正文

ListView 分頁加載更新實例分享

2020-04-11 12:42:23
字體:
來源:轉載
供稿:網友
ListView是android中最常用的控件之一。

在實際運用中往往會遇到一次性加載全部數據過多,需要分頁加載增加程序運行效率!
本demo是將更新的監聽放在listview的foot中,通過底部按鈕點擊觸發或者通過滑動事件監聽,當滑動到列表最底部的時候觸發。
有圖有真像:
列表初始狀態
 
觸發加載
 
加載后
 
部分代碼:
MainActivity
復制代碼 代碼如下:

private void initActivity() {
// TODO Auto-generated method stub
loadMoreView = getLayoutInflater().inflate(R.layout.loadmore, null);
loadmore_btn = (Button) loadMoreView.findViewById(R.id.loadmore_btn);
loadmore_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
doUpdate();
}
});
listView = (ListView) findViewById(R.id.listView);
listView.addFooterView(loadMoreView);
initAdapter();
listView.setAdapter(adapter);
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
int itemsLastIndex = adapter.getCount() - 1;
int lastIndex = itemsLastIndex + 1;
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE
&& visibleLast == lastIndex) {
// 可在這添加滑到列表底的時候異步自動加載
// doUpdate();
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
visibleCount = visibleItemCount;
visibleLast = firstVisibleItem + visibleItemCount - 1;
}
});
}
protected void doUpdate() {
// TODO Auto-generated method stub
loadmore_btn.setText("loading ...");
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
loadData();
adapter.notifyDataSetChanged();// 通知adapter數據變化
listView.setSelection(visibleLast - visibleCount + 1);
loadmore_btn.setText("Load More");
}
}, 2000);
}
private void loadData() {
// TODO Auto-generated method stub
int count = adapter.getCount();
for (int i = count; i < count + 10; i++) {
adapter.addItem(String.valueOf(i + 1));
}
}
private void initAdapter() {
// TODO Auto-generated method stub
List<String> items = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
items.add(String.valueOf(i + 1));
}
adapter = new ListAdapter(this, items);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

ListAdapter
復制代碼 代碼如下:

public ListAdapter(Context context, List<String> items) {
this.items = items;
this.inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return items.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return items.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item, null);
}
TextView textView = (TextView) convertView
.findViewById(R.id.list_item_text);
textView.setText(items.get(position));
return convertView;
}
/**
* 添加列表項
* @param item
*/
public void addItem(String item){
items.add(item);
}

提醒一下:要下載android-support-v4.jar 這個第三方的jar包哦! 這里就不提供下載了!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲第一成av人网站懂色 | 成年片在线观看 | 91精品中文字幕 | www亚洲成人 | 国产免费久久久久 | 一区二区免费看 | 91看片在线观看视频 | 一本色道久久久888 国产一国产精品一级毛片 国产精品高潮视频 | 2021免费日韩视频网 | 麻豆视频国产在线观看 | 国产一级αv片免费观看 | va毛片 | 久久精品一区二区三区国产主播 | 偿还电影免费看 | 久久久精品福利 | 国产永久免费观看 | 欧美日韩在线播放一区 | 中文字幕一二三区芒果 | 他也色在线视频 | 午夜视| 青草久久网 | 在线日韩av电影 | 久草在线视频在线 | 成人毛片免费看 | 欧美成人精品不卡视频在线观看 | 欧美日韩中文字幕在线视频 | 欧美a在线观看 | av不卡免费观看 | 精品国产一区二区三区久久久蜜 | 2019中文字幕在线播放 | 欧美一级理论 | 欧美精品久久久久久久久久 | 一级在线视频 | 欧美999| 国产精品亚洲一区二区三区在线观看 | 美女喷水网站 | 久久综合av | 精品一区二区三区免费毛片 | 在线成人一区二区 | 久久久aa| 国产黄色一级大片 |