android 实现listview动态加载列表项www.maiziedu.com

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,转载请注明出处。

 

你可能感兴趣的:(java,android,IT教育,麦子学院,IT在线教育)