当前位置:  编程技术>移动开发

Android提高之SQLite分页读取实现方法

    来源: 互联网  发布时间:2014-10-25

    本文导语:  一般来说,Android自身就包含了常用于嵌入式系统的SQLite,这样就免去了开发者自己移植安装的功夫。SQLite 支持多数SQL92标准,很多常用的SQL命令都能在SQLite上面使用,除此之外Android还提供了一系列自定义的方法去简化对SQLite...

一般来说,Android自身就包含了常用于嵌入式系统的SQLite,这样就免去了开发者自己移植安装的功夫。SQLite 支持多数SQL92标准,很多常用的SQL命令都能在SQLite上面使用,除此之外Android还提供了一系列自定义的方法去简化对SQLite数据库的操作。不过有跨平台需求的程序还是建议使用标准的SQL语句,毕竟这样容易在多个平台之间进行移植。

先来贴出本文程序运行的结果图:

本文实例程序主要讲解了SQLite的基本用法,如:创建数据库,使用SQL命令查询数据表、插入数据,关闭数据库,以及使用GridView实现了一个分页栏(关于GridView的用法),用于把数据分页显示。

分页栏的pagebuttons.xml的源码如下:



 
 
 

main.xml的源码如下:



 
 
 
 
 


Java程序源码如下:

package com.testSQLite; 
import java.util.ArrayList; 
import java.util.HashMap; 
import android.app.Activity; 
import android.database.Cursor; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.GridView; 
import android.widget.SimpleAdapter; 
public class testSQLite extends Activity { 
  /** Called when the activity is first created. */ 
  Button btnCreateDB, btnInsert, btnClose; 
  EditText edtSQL;//显示分页数据 
  SQLiteDatabase db; 
  int id;//添加记录时的id累加标记,必须全局 
  static final int PageSize=10;//分页时,每页的数据总数 
  private static final String TABLE_NAME = "stu"; 
  private static final String ID = "id"; 
  private static final String NAME = "name"; 
  SimpleAdapter saPageID;// 分页栏适配器 
  ArrayList lstPageID;// 分页栏的数据源,与PageSize和数据总数相关 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    btnCreateDB = (Button) this.findViewById(R.id.btnCreateDB); 
    btnCreateDB.setOnClickListener(new ClickEvent()); 
    btnInsert = (Button) this.findViewById(R.id.btnInsertRec); 
    btnInsert.setOnClickListener(new ClickEvent()); 
    btnClose = (Button) this.findViewById(R.id.btnClose); 
    btnClose.setOnClickListener(new ClickEvent()); 
    edtSQL=(EditText)this.findViewById(R.id.EditText01); 
    GridView gridview = (GridView) findViewById(R.id.gridview);//分页栏控件 
    // 生成动态数组,并且转入数据 
    lstPageID = new ArrayList(); 
    // 生成适配器的ImageItem  动态数组的元素,两者一一对应 
    saPageID = new SimpleAdapter(testSQLite.this, // 没什么解释 
        lstPageID,// 数据来源 
        R.layout.pagebuttons,//XML实现 
        new String[] { "ItemText" }, 
        new int[] { R.id.ItemText }); 
 
    // 添加并且显示 
    gridview.setAdapter(saPageID); 
    // 添加消息处理 
    gridview.setOnItemClickListener(new OnItemClickListener(){ 
      @Override 
      public void onItemClick(AdapterView arg0, View arg1, int arg2, 
          long arg3) { 
        LoadPage(arg2);//根据所选分页读取对应的数据 
      } 
    }); 
  } 
  class ClickEvent implements View.OnClickListener { 
    @Override 
    public void onClick(View v) { 
      if (v == btnCreateDB) { 
        CreateDB(); 
      } else if (v == btnInsert) { 
        InsertRecord(16);//插入16条记录 
        RefreshPage(); 
      }else if (v == btnClose) { 
        db.close(); 
      } 
    } 
  } 
  /* 
   * 读取指定ID的分页数据 
   * SQL:Select * From TABLE_NAME Limit 9 Offset 10; 
   * 表示从TABLE_NAME表获取数据,跳过10行,取9行 
   */ 
  void LoadPage(int pageID) 
  { 
    String sql= "select * from " + TABLE_NAME +  
    " Limit "+String.valueOf(PageSize)+ " Offset " +String.valueOf(pageID*PageSize); 
    Cursor rec = db.rawQuery(sql, null); 
    setTitle("当前分页的数据总数:"+String.valueOf(rec.getCount())); 
    // 取得字段名称 
    String title = ""; 
    int colCount = rec.getColumnCount(); 
    for (int i = 0; i < colCount; i++) 
      title = title + rec.getColumnName(i) + "   "; 
    // 列举出所有数据 
    String content=""; 
    int recCount=rec.getCount(); 
    for (int i = 0; i < recCount; i++) {//定位到一条数据 
      rec.moveToPosition(i); 
      for(int ii=0;ii

    
 
 

您可能感兴趣的文章:

  • Android 元数据读取实用库 android-metadata
  • android读取assets文件示例
  • android读取raw文件示例
  • android读取sdcard路径下的文件的方法
  • Android读取用户号码,手机串号,SIM卡序列号的实现代码
  • Android 读取Properties配置文件的小例子
  • 基于android中读取assets目录下a.txt文件并进行解析的深入分析
  • android读取Assets图片资源保存到SD卡实例
  • 板子上android读取sd问题
  • android读写sd卡操作写入数据读取数据示例
  • python读取Android permission文件
  • android读取短信示例分享
  • Android中读取中文字符的文件与文件读取相关介绍
  • Android控件ListView用法(读取联系人示例代码)
  • android将图片转换存到数据库再从数据库读取转换成图片实现代码
  • android按行读取文件内容的几个方法
  • 解析Android资源文件及他们的读取方法详解
  • Android提高之BLE开发Android手机搜索iBeacon基站
  • Android提高之蓝牙传感应用实例
  • Android提高之多方向抽屉实现方法
  • Android提高之SurfaceView的基本用法实例分析
  • Android提高之AudioRecord实现助听器的方法
  • Android提高之Service用法实例解析
  • Android提高之手游转电视游戏的模拟操控
  • Android提高之SurfaceView与多线程的混搭实例
  • 理解Android的手势识别提高APP的用户体验
  • Android提高之BroadcastReceiver实例详解
  • Android提高之TelephonyManager功能探秘
  • Android提高之ListView实现自适应表格的方法
  • Android提高之MediaPlayer播放网络音频的实现方法
  • Android提高之MediaPlayer音视频播放
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • php iis7站长之家
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton
  • Android 将 android view 的位置设为右下角的解决方法
  • Android 2D游戏引擎 Android Angle




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3