Android listview动态加载列表项实现代码
程序员文章站
2024-03-03 21:00:58
最近了一个动态加载listview类表项的列子,分享出来大家学习学习,说说这个例子的实现过程,首先限定每次加载的列表项数据为10条数据,当拖动listview滚动到最后一条...
最近了一个动态加载listview类表项的列子,分享出来大家学习学习,说说这个例子的实现过程,首先限定每次加载的列表项数据为10条数据,当拖动listview滚动到最后一条数据的时候再加载10条,并在listview下方显示加载提示。
下面是我的java源码:
private void showcontent() { listview = (listview) findviewbyid(r.id.journals_list_one); loaddata(); adapter = new mylistadapter(this, data); footerview = view.inflate(testlayout.this, r.layout.journal_listitem_loading_bar, null); listview.addfooterview(footerview, null, true); listview.setadapter(adapter); listview.setonscrolllistener(listener); } private abslistview.onscrolllistener listener = new abslistview.onscrolllistener() { @override public void onscrollstatechanged(abslistview view, int scrollstate) { if (view.getlastvisibleposition() == view.getcount() - 1) { loaddata(); adapter.notifydatasetchanged(); } } @override public void onscroll(abslistview view, int firstvisibleitem, int visibleitemcount, int totalitemcount) { } }; /** * 构造list列表数据 */ private void loaddata() { if (data.size() <= 40) { for (int i = 0; i < 10; i++) { map<string, string> map = new hashmap<string, string>(); map.put("title", getstring(r.string.title)); map.put("desc", getstring(r.string.content)); data.add(map); } } else { listview.removefooterview(footerview); } }
实现这个功能主要是添加listview的onscrolllistener监听,判断是否列表项到了最有一条,如果是最后一条就加载数据。加载数据时的加载效果是listview.addfooterview()方法实现这个方法必须在listview.setadapter()前才有用,当所有数据加载完成就调用listview.removefooterview把footerview移除就可以了。
如果还想再深入学习android listview的朋友可以点击查看专题,更精彩: android listview使用方法
以上就是本文的全部内容,希望对大家学习android软件编程有所帮助,也希望大家多多支持。