android 实现listview动态加载列表项
一个动态加载listview类表项的列子,分享出来大家学习学习,我说说这个例子的实现过程,首先我限定每次加载的列表项数据为10条数据,当我拖动listview滚动到最后一条数据的时候再加载10条,并在Listview下方显示加载提示。
下面是Java源码:
Java代码
1
2
3 viewplaincopytoclipboardprint?
4 privatevoidshowContent(){
5 listView=(ListView)findViewById(R.id.journals_list_one);
6 loadData();
7 adapter=newMyListAdapter(this,data);
8
9 footerView=View.inflate(TestLayout.this,
10 R.layout.journal_listitem_loading_bar,null);
11 listView.addFooterView(footerView,null,true);
12
13 listView.setAdapter(adapter);
14 listView.setOnScrollListener(listener);
15 }
16 privateAbsListView.OnScrollListenerlistener=newAbsListView.OnScrollListener(){
17
18 @Override
19 publicvoidonScrollStateChanged(AbsListViewview,intscrollState){
20 if(view.getLastVisiblePosition()==view.getCount()-1){
21 loadData();
22 adapter.notifyDataSetChanged();
23 }
24 }
25
26 @Override
27 publicvoidonScroll(AbsListViewview,intfirstVisibleItem,
28 intvisibleItemCount,inttotalItemCount){
29
30 }
31 };
32
33 /**
34 *构造List列表数据
35 */
36 privatevoidloadData(){
37 if(data.size()<=40){
38 for(inti=0;i<10;i++){
39 Map<String,String>map=newHashMap<String,String>();
40 map.put("title",getString(R.string.title));
41 map.put("desc",getString(R.string.content));
42 data.add(map);
43 }
44 }else{
45 listView.removeFooterView(footerView);
46 }
47 }
实现这个功能主要是添加ListView的OnScrollListener监听,判断是否列表项到了最有一条,如果是最后一条就加载数据。加载数据时的加载效果是ListView.addFooterView()方法实现这个方法必须在listview.setAdapter()前才有用,当所有数据加载完成就调用listView.removeFooterView把footerview移除就可以了.
注:文章刊于IT在线教育平台——麦子学院www.maiziedu.com,转载请注明出处。