Android官方SDK文档中有一个很好的示例Notepad Tutorial,由浅入深、系统的介绍了在Android下开发的完整过程。工作之余看了看也有不少收获,在这里和大家分享一下,我只表述感觉可以总结的地方,至于整体的描述以及源代码可以在SDK文档中找到。
此示例分为三个部分来完成notepad这个应用:
- Exercise 1:通过如何添加Menu以及相应事件来生成数据并绑定到ListActivity来显示数据。
- Exercise 2:在1的基础上,学习如何调用新的Activity并传递相关数据实现数据的添加和删除,如何添加context menu并提供删除数据的功能。
- Exercise 3:在2的基础上,完善此应用,主要熟悉和掌握一个应用基本的生命周期,并且在适当的阶段处理正确的事情。
先来看Exercise 1:
- 首先需要关注下类NotesDbAdapter,这个是在Exercise 1中已经写好的,并且持续的用于Exercise 2和3。主要封装了对于内嵌在Android中的SQLite的访问,包括CreateDB,Create Note,Delete Note,Fetch Note等。如果是作为应用中简单数据的存储,完全可以参照本类来完成对于数据的操作。
- Menu的相关操作都是在事件onCreateOptionsMenu和onOptionsItemSelected中完成的。
- 通过notepad_list.xml和notes_row.xml来完成界面布局的设定,在方法fillData()中,通过NotesDbAdapter从SQLite中获取Notes数据,并绑定在ListActivity中。
- 关于Note的创建,是在单击Menu时,通过NotesDbAdapter的createNote来完成的。
- 对于存储在SQLite中的Note数据,除了通过此应用能查看之外,我们还可以通过命令行访问SQLite来查询,如果完全是按照Exercise 1完成本次实例,则可以通过如下的方式访问(在类NotesDbAdapter中可以看到本实例创建的DB为data,存储的Table为notes):
1 adb shell 进入模拟器Shell环境 2 sqlite3 /data/data/com.android.demo.notepad1/
databases/data访问位于此目录的SQLite DB 3 .tables 此命令可以查看当前DB(data)中所包含的所有table信息,其它命令可以通过.help来查看 4 select * from notes; 从表notes中查询添加的数据 - 如果不是严格按照本示例完成的应用,比如说Package的名称不是com.android.demo.notepad1,则在上述步骤2中db的路径会发生变化,具体可以通过Android的Eclipse插件File Explorer来查看文件目录,确定数据所在的地址,此插件可以在Eclipse中通过菜单Window –> Show View –> Others… ,在目录Android下可以找到。当然也可以通过命令行adb pull /data/data/com.android.demo.notepad1/databases/data c:\ 把数据文件导出到本地硬盘中,通过客户端工具比如sqliteman等查看甚至修改数据。