Android应用中使用ListView来分页显示刷新的内容

2019-12-10 18:12:04王冬梅
易采站长站为您分析Android应用中使用ListView来分页显示刷新的内容的方法,展示了一个点击按钮进行刷新的实例以及下拉刷新分页显示的要点解析,需要的朋友可以参考下  

点击按钮刷新
1、效果如下:

Android应用,ListView,分页Android应用,ListView,分页

实例如下:  上图的添加数据按钮可以换成一个进度条  因为没有数据所以我加了一个按钮添加到数据库用于测试;一般在服务器拉去数据需要一定的时间,所以可以弄个进度条来提示用户:
点击加载按钮的时候,向数据库读取一次数据,把读取的数据追加到原来的数据集中;然后显示出来

package com.exampleandroid.xiong.listviewpages; 
 
public class News { 
 private String title; 
 private int id; 
 
 /** 
  * 
  * @return 返回新闻标题 
  */ 
 public String getTitle() { 
  return title; 
 } 
 
 /** 
  * 
  * @param title 
  *   设置新闻标题 
  */ 
 public void setTtitle(String title) { 
  this.title = title; 
 } 
 
 /** 
  * 
  * @return 返回新闻标识 
  */ 
 public int getId() { 
  return id; 
 } 
 
 /** 
  * 
  * @param id 
  *   设置新闻标识 
  */ 
 public void setId(int id) { 
  this.id = id; 
 } 
} 

package com.exampleandroid.xiong.listviewpages; 
 
import java.util.ArrayList; 
import java.util.List; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
 
public class GetNews { 
 
 /** 
  * 
  * @param page 
  *   需要加载的页数 每页数据5条 
  * @param dbnews 
  *   SQLiteOpenHelper子类 
  * @return 返回新闻加载的数据 
  */ 
 public List<News> getListNews(int page, DbSqliteNews dbnews) { 
  List<News> list = new ArrayList<News>(); 
  String sql = "select * from tb_newstile where news_id not in(select news_id from tb_newstile LIMIT " 
    + 5 * (page - 1) + ") LIMIT " + 5 * page; 
  Cursor cursor = dbnews.getReadableDatabase().rawQuery(sql, null); 
  while (cursor.moveToNext()) { 
   News news = new News(); 
   news.setTtitle(cursor.getString(1)); 
   news.setId(cursor.getInt(0)); 
   list.add(news); 
  } 
  cursor.close(); 
  return list; 
 } 
 
 /** 
  * 插入100条数据用于测试 
  * 
  * @param dbnews 
  *   SQLiteOpenHelper子类 
  */ 
 public void insertData(DbSqliteNews dbnews) { 
  SQLiteDatabase datas = dbnews.getWritableDatabase(); 
  datas.beginTransaction(); 
  try { 
   for (int i = 0; i < 100; i++) { 
    datas.execSQL("insert into tb_newstile values(?,?)", 
      new Object[] { i, "新闻标题" + i }); 
   } 
   datas.setTransactionSuccessful(); 
  } catch (Exception e) { 
   System.out.println("数据插入失败!"); 
   e.printStackTrace(); 
  } finally { 
   datas.endTransaction(); 
  } 
 
 } 
}