Skip to content

服务器托管,北京服务器托管,服务器租用-价格及机房咨询

Menu
  • 首页
  • 关于我们
  • 新闻资讯
  • 数据中心
  • 服务器托管
  • 服务器租用
  • 机房租用
  • 支持中心
  • 解决方案
  • 联系我们
Menu

Android提高第八篇之SQLite分页读取

Posted on 2023年5月6日 by hackdl

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

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

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

关于GridView的用法),用于把数据分页显示。

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

    
      
      

main.xml的源码如下:

    
      
      
      
      
      

本文程序源码如下:

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  map = new HashMap();    
            map.put("ItemText", "No." + String.valueOf(i));  
    
            lstPageID.add(map);    
        }    
        saPageID.notifyDataSetChanged();    
    }    
}

  • 大小: 1 MB
  • 查看图片附件

服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net

Related posts:

  1. 河南服务器机柜租用
  2. 期货托管服务器排名及公司推荐
  3. IntelliJ IDEA 翻译
  4. 高效稳定的辽宁服务器托管云主机服务
  5. [SDOI2015][bzoj 3994][Luogu P3327] 约数个数和 (莫比乌斯反演)

服务器托管,北京服务器托管,服务器租用,机房机柜带宽租用

服务器托管

咨询:董先生

电话13051898268 QQ/微信93663045!

上一篇: Activity切换动画效果的修改
下一篇: Android提高第九篇之GridView和SQLite实现分页表格

最新更新

  • R语言用多元ARMA,GARCH ,EWMA, ETS,随机波动率SV模型对金融时间序列数据建模|附代码数据
  • mosn基于延迟负载均衡算法 — 走得更快,期待走得更稳 | 京东云技术团队
  • C++之虚函数原理 虚函数表
  • etcd:增加30%的写入性能
  • 为什么要安装虚拟机–Linux系统,我的虚拟机安装过程记录—14版本虚拟机

随机推荐

  • 北京服务器托管与虚拟主机租用
  • 评析1u服务器在托管方面的可行性
  • 北京优质idc数据中心价格
  • 全面介绍机柜租赁价格表:完整价格明细
  • 服务器托管前期准备工作经验分享——保障服务器安全稳

客服咨询

  • 董先生
  • 微信/QQ:93663045
  • 电话:13051898268
  • 邮箱:dongli@hhisp.com
  • 地址:北京市石景山区重聚园甲18号2层

友情链接

  • 服务器托管
  • 服务器租用
  • 机房租用托管
  • 服务器租用托管
©2023 服务器托管,北京服务器托管,服务器租用-价格及机房咨询 京ICP备13047091号-8