Android编程实现分页加载ListView功能示例
作者:Gobby.X 发布时间:2023-11-13 06:27:27
标签:Android,分页加载,ListView
本文实例讲述了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程序设计有所帮助。


猜你喜欢
- JDK12的五大重要新特性Java12在March 19, 2019发布了。在2017年发布Java 9之后,Java平台发布节奏已从每3年
- 前言我们在实际项目中,除了会碰到一对一的情况,还有一对多的情况,比如一个用户可以有多辆车,而一辆车只能有一个用户等等,今天我们就来一起学习下
- 注意事项阿里云的dataworks提供了OpenApi, 需要是企业版或旗舰版才能够调用,也就是付费项目。这里测试主要是调用拉取datawo
- 本文实例为大家分享了java实现邮箱群发的具体代码,供大家参考,具体内容如下近来无事,在网上看了一些大牛文章,其中看到一篇比较好的,分享给大
- 前言前面几篇我们简单的复习了一下自定义 View 的测量与绘制,并且回顾了常见的一些事件的处理方式。那么如果我们想自定义 ViewGroup
- 最近刚开始接触机器学习,在这里使用c#模拟一元线性回归,先上图看效果因为源码中有一些控件是自己封装的,所以就不上传可运行的程序集了,贴出核心
- 这其实是去年校招时我遇到的一道阿里巴巴的笔试题(承认有点久远了-。-),嗯,如果我没记错的话,当时是作为Java方向的一道选做大题。当然题意
- 1. 问题描述springboot的面世,成为Java开发者的一大福音,大大提升了开发的效率,其实springboot只是在maven的基础
- 本篇要点简单描述浮点数十进制转二进制精度丢失的原因。介绍几种创建BigDecimal方式的区别。整理了高精度计算的工具类。学习了阿里巴巴Ja
- 解决Long型数据转换成json格式时丢失精度最近项目中突然发现雪花算法生成的数据库主键id返回给前端时和本身的值不一致,于是后端进行断点调
- 一、IDEA自带打包插件内容:此种方式可以自己选择制作胖包或者瘦包,但推荐此种方式制作瘦包。输出:输出目录在out目录下流程步骤:第一步:
- 目录概述语法索引器(Indexer)的用途重载索引器(Indexer)概述索引器(Indexer) 允许一个对象可以像数组一样使用下标的方式
- android studio 版本不同连接手机方式有细微的不同,主要方式相似。介绍主要分手机和电脑两部分介绍。一、手机部分1、手机端下载一个
- 首先来看一下工具StringUtils的判断方法:一种是org.apache.commons.lang3包下的;另一种是org.spring
- 众所周知Java中的数据类型是强数据类型,基本数据类型之间的转换尤其固定的规则,当数据宽度比较窄的数据类型(如int)转换成数据类型比较宽的
- 我们在j2ee当中,连接数据库的时候经常会用到properties配置文件,我们原来在eclipse或者myeclipse当中会在src文件
- String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对
- 本文将用两个方法来写类似汽车荷载的进度用LinearLayout的addview方法加上for循环用自定义控件的方法先上截图1. 用Line
- Androidstudio音乐播放器,供大家参考,具体内容如下实现目的:利用广播在myapplication中原本button点我暂停按钮是
- 一、事务的基本原理Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操