原文地址:http://www.cnblogs.com/-run/archive/2011/11/30/2269390.html点击打开链接
虽然整个功能比较简单,但要掌握的东西还是很多的
完成整个功能主要需要以下几点内容:
一. 申请SDcard权限,让程序可以在SDcard创建文件夹和数据库文件
二. 创建一个ListView Activity 和 Activity对应的list.xml layout
三. 使用 SQLiteDatabase 来管理 SQL , execute SQL commands, and perform other common database management tasks
四. 使用 Adapter 把数据映射到ListView ,且把数据传到TextView等控件中显示出来(这位同学有关于Adapter相关资料:Android开发——说说Adapter那点事)
首先来设置SDcard的权限,加上uses-permission
AndroidManifest.xml
创建listview元素文件:
布局layout中, android:descendantFocusability="blocksDescendants" 这个属性尤其关键, 如果你需要在listview里添加按钮什么的,就需要添加这个元素,使listview不把按钮的焦点覆盖
list.xml
创建MyListViewActivity 继承 ListActivity , 它和Activity差不多,只是多了对ListView的一些优化
MyListViewActivity.java
配置文件,定义各种常量和变量,方便重复使用
config.java
自定义函数文件
function.java
adb查看数据sdcard数据库
补充一下,如果你需要把现有的数据库放到SDcard的话,(既是用户安装使用该软件的时候,把已经装好数据的Database放到SDcard)
先把处理好的数据库放在assets文件夹中,然后当程序第一次运行的时候,就把数据库复制到SDcard
第一步,复制已经处理好的database.db放在assets文件夹
第二步,在程序的第一个Activity判断用户的SDcard中是否已经存在这个数据库文件
第三步,若不存在,则进行复制
public void createDataBase() throws IOException{ File dbdir = config.path; if(!dbdir.exists()){ dbdir.mkdirs(); } if(!config.f.exists()){ config.f.createNewFile(); SQLiteDatabase.openOrCreateDatabase(config.f, null); copyDataBase(); } } private void copyDataBase() throws IOException { InputStream myInput; //复制到的目标路径 String outFileName = config.CR_URL_DBTABLE; OutputStream myOutput = new FileOutputStream(outFileName); //获取Assets文件夹中的databae.db myInput = this.getAssets().open(config.CR_DBNAME); byte[] buffer = new byte[1024]; int length; while ((length = myInput.read(buffer)) > 0) { myOutput.write(buffer, 0, length); } myOutput.flush(); myInput.close(); myOutput.close(); }