欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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程序设计有所帮助。

上一篇:

下一篇: