android(数据库分页显示)_sqlitedatabase
2014-05-02 15:56
435 查看
package com.qiao.android11_sqlitedatabase_te; import java.io.File; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.os.Environment; import android.support.v4.widget.SimpleCursorAdapter; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.ListView; //总结;根据SQLitDatabase连接数据库返回一个动作执行者 去执行rawQuery 或者execSQL 或者 beginTransaction 或endTransaction //首先使用rawQuery参数是一个 sql语句查询字符串,第二个如果不要求偏移量的话可以为空 // public class MainActivity extends Activity { private static final String TAG = "MainActivity"; private ListView listView_main_show; private int pageCount = 0;// 总行数; private int everyPageSize = 7;// 每页显示的行数; private int countCount = 0;// 总页数; private int curPage = 1;// 当前页,初始化为1; private int offset = 0;// 偏移量初始化为0; private SQLiteDatabase db = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView_main_show = (ListView) findViewById(R.id.listView_main_show); String path = Environment.getExternalStorageDirectory() .getAbsolutePath() + File.separator + "qiao" + File.separator + "android_manual.db";// 获取路径 Log.i(TAG, "== path" + path); db = SQLiteDatabase.openDatabase(path, null, 1); // 连接数据库时候使用SQLiteDatabase,这里边三个参数一个是数据路径,第二个可以为空,第三个访问方式 // 可以使用SQLiteDatabase.open_readonly;选择这种只读模式去连接已经存在的数据库文件。 String sq = "select id as _id,title from android_datastorage"; Log.i(TAG, "== sq" + sq); Cursor cursor = db.rawQuery(sq, null);// 有他是求总行数的 用的就是Cursor Log.i(TAG, "== cursor" + cursor); // 1、 上边连接上之后会有有返回值类型SQLiteDatabase db = 。。。。。直接用他有四个方法分别是 // 2、db.rawQuery。。这哥们专门执行带有占位符的sql查询语句,目前用在分页展示中 // 3、db.execSQL。。这哥们专门用在执行带有占位符的sql语句--包含(update,insert,delete语句)--总之除了查询都能 // --上边两个都是带占位符的操作方法 // 4、db.beginTransaction。。db.endTransaction --- 这两个都是事物 pageCount = cursor.getCount();// 返回所查询数据的总行数 Log.i(TAG, "== pageCount" + pageCount); countCount = (int) Math.ceil(pageCount / (double) everyPageSize);// 总页数 Log.i(TAG, "== countCount" + countCount); /* * 上边主要是获取数据库路径然后连接数据库,用它的返回值去执行查询返回Cursor结果集,至此,所有的结果都存在结果集中, * 可以用Cursor的方法去获取文件的总行数,getCount(); 至于获得总页数的话,首先先要定义每页有几条数据比如7条8条, * 这些都是自己定义的,看自己的屏幕一屏幕能放下多少个 然后 总行数 / 每行自定义个数 (向上取整)= 总页数 */ fillListView(1); } public void clickButton(View view) { switch (view.getId()) { case R.id.button_main_first: if (curPage != 1) curPage = 1; break; case R.id.button_main_previous: if (curPage >= 2) { curPage--; } else { curPage = 1; } break; case R.id.button_main_next: if (curPage <= countCount - 1) { curPage++; } else { curPage = countCount; } break; case R.id.button_main_last: if (curPage != countCount) curPage = countCount; break; default: break; } fillListView(curPage); } public void fillListView(int currentpage) { offset = everyPageSize * (curPage - 1);// 偏移量 String sql = "select id as _id,title from android_datastorage limit?,?"; Cursor cursor2 = db.rawQuery(sql, new String[] { offset + "", everyPageSize + "" }); SimpleCursorAdapter adapter = new SimpleCursorAdapter( MainActivity.this, R.layout.item_listview, cursor2, new String[] { "_id", "title" }, new int[] { R.id.textView_item__main_id, R.id.textView_item_title }, 2); listView_main_show.setAdapter(adapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
相关文章推荐
- [Android]simplelistadapter 与数据库绑定显示list 并且根据数据库内容产生图片信息
- JSP数据库操作例程数据分页显示
- jsp中利用分页技术显示数据库内容
- servlet和javabean实现长文本数据分页显示,数据库相关
- Android-Sqlite数据库的分页显示。 .
- VC下利用CADO Class和DataGrid分页显示数据库access内容
- Access 数据表分页显示&导入数据库
- Android06_contacts的数据库分析以及页面的显示
- 基于VB6+ADO+ListView制作的一个数据库分页显示程序(完整原程序)
- 数据库的相关操作:如连接、查询、添加、删除、修改、分页显示
- 如何在Struts 数据库应用程序中实现分页显示
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- 《实现JSP分页显示数据库》的阅读笔记
- Spring boot分页显示数据库中数据(不刷新页面)
- JAVA高级【4.8】《Java核心技术2》数据库-JavaWeb分页显示内容——数据库分页查询
- 千万级数据库高速分页显示
- 11-6数据库加强(子查询(独立子查询,相关子查询),分页显示,开窗函数 over(),join )
- Android本地数据存储之SQLite关系型数据库 ——SQLiteDatabase
- Android中通讯录 自定义布局显示 数据库中的 用户名和电话号码
- vb ListView数据库分页显示