Android编程实现分页加载ListView功能示例
程序员文章站
2023-12-18 12:31:28
本文实例讲述了android编程实现分页加载listview功能。分享给大家供大家参考,具体如下:
package eoe.listview;
import a...
本文实例讲述了android编程实现分页加载listview功能。分享给大家供大家参考,具体如下:
package eoe.listview; import android.app.activity; import android.database.cursor; import android.os.bundle; import android.os.handler; import android.os.message; import android.view.view; import android.widget.adapterview; import android.widget.listview; import android.widget.progressbar; import android.widget.textview; import android.widget.adapterview.onitemselectedlistener; public class mainactivity extends activity { private listview listview; private progressbar loadbar; private textview loadtext; private shopadapter adapter; private int start=0; //开始数量 private int limit=3; //每页数量 @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); listview=(listview)findviewbyid(r.id.main_listview); loadbar=(progressbar)findviewbyid(r.id.main_loadbar); loadtext=(textview)findviewbyid(r.id.main_loadtext); adapter=new shopadapter(this); listview.setadapter(adapter); listview.setonitemselectedlistener(new onitemselectedlistener(){ @override public void onitemselected(adapterview arg0, view arg1, int count, long arg3) { if(adapter.getcount()==count+1){ loadtext.settext("下载中..."); loadbar.setvisibility(view.visible); new thread(mrunnable).start(); } } @override public void onnothingselected(adapterview arg0) { } }); new thread(mrunnable).start(); } /** * 商店列表线程 */ private runnable mrunnable=new runnable(){ public void run(){ try { thread.sleep(1500); mhandler.sendmessage(mhandler.obtainmessage()); } catch (interruptedexception e) { //system.out.println("error-"+e.getmessage()); } } }; handler mhandler=new handler(){ public void handlemessage(message msg){ super.handlemessage(msg); loadhotshop(limit); } }; /** * 加载店铺 * @return */ public void loadhotshop(int limit){ dblocalservice db=new dblocalservice(this); cursor cursor=db.querysql("select * from "+db.table_shop+" limit "+start+","+limit,null); if(cursor.getcount()>0) this.start+=limit; while(cursor.movetonext()){ shop s=new shop(); s.setid(cursor.getstring(cursor.getcolumnindex("id"))); s.settitle(cursor.getstring(cursor.getcolumnindex("title"))); adapter.addshop(s); } loadtext.settext(""); loadbar.setvisibility(view.gone); } }
我们第一个应该看见的就是声明了很多私有的变量,因为这样设置就可以变成只能自己来调用了,这样和其它的不发生冲突。其中我们设置了开始数量和每页数量。我们还要new一个adapter=new shopadapter(this);这个this就是写的本类,也可以写成类名.this。这个就是看个人的喜好,完事我们开始判断,记住的是,在判断的条件中count是要加1的,这个大家可要记住了我们在写一个run方法,则个就自己来顶了,就不多说了。我们最后写一个loadhotshop()方法,这个方法中要写上你的参数,也就是你想加载几页,就这样,我们分页加载就完成了。
更多关于android相关内容感兴趣的读者可查看本站专题:《android视图view技巧总结》、《android布局layout技巧总结》、《android图形与图像处理技巧总结》、《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android多媒体操作技巧汇总(音频,视频,录音等)》、《android基本组件用法总结》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。