notepad exercise 1

来源:互联网 发布:qt软件打包 编辑:程序博客网 时间:2024/05/10 20:42

在本练习中,你要创建一个简单的可以让用户添加新记事,却不能编辑的记事列表程序,本练习你将学到以下知识:

ListActivities 的基本用法 ,创建并处理菜单选项

创建数据库用以存储记事。

把数据库Cursor中的数据用 SimpleCursorAdapter绑定到一个ListView.

基本的屏幕布局,包括如何排列一个列表,如何向活动菜单中添加项目,及活动如何处理菜单选项。

 

第一步

在Eclipse环境中打开 Notepadv1 工程

Notepadv1 工程是一个起点工程,如果你看了Hello,world 教程,你会发现,Notepadv1 引用 了一些之前的工作。

1。新建一个Android工程,File > New > Android Project.

2.在新建工程的对话框中,选择Create project from existing source.

3.点击 Browse ,找到 NotepadCodeLab 并选择 Notepadv1。

4.工程名及其它空格应该已经自动为你填好了。你必须选择生成目标,我们建议你选择一个可用的最低的版本平台。

5.点击 Finish. Notepadv1 工程应该已经打开了,在Eclipse 中的 package explorer可见。

 

如何在AndroidManifest.xml文件中有错误,或者 Android 压缩文件有问题,右击工程,选择  Android Tools > Fix Project Properties.

 

第二步

查看 NotesDbAdapter类。这个类对SQLite的数据访问进行了封装。并允许我们更新它。

 

类的上部定义了一些常量。还定义了一个新建数据库语句。

我们的数据库名字是 data,有一个名为 notes的表,该表有3个域, _idtitle 和body。

open()方法唤醒了一个 DatabaseHelper 实例。它调用  getWritableDatabase()方法,这个方法可以为我们打开或新建一个数据库。

close()方法只是关闭数据库,释放相关的连接资源。

createNote()设置了一个新记事的标题和正文。然后写入数据库。如果新记事创建成功,这个方法会返回新增词的_id。

deleteNote()按一个记事的ID把它从数据库中删除 。

fetchAllNotes() 返回一个 拥有所有数据的 Cursor。

query() 方法值得好好阅读并理解。第一个域是要查询的表名,(本例中它的值 是notes),下一个域是我们想要返回的列。

在本例中我们返回的列是 _idtitle 和body ,它们被 指定到一个 String 数组中。

其它的域依次是:selectionselectionArgsgroupByhaving  和 orderBy. 当这些值全空时,返回所有数据,不分组,并启用默认排序。

查看更多请访问  SQLiteDatabase

注释:返回的是一个Cursor(指针)而不是行的集合。这可以让android更高效的使用资源----而不是把大量数据直接放入内存中。这个Cursor当需要数据时就使用,不需要时就释放,对于有多行数据 的表而言,这种方法更高效。

 

第三步

 

打开res/layout/notepad_list.xml,并查阅。

 

这是一个几乎是空的布局文件。

关于布局文件,有以下几点你需要知道。

所有的Android布局文件必须以 <?xml version="1.0" encoding="utf-8"?> 开头。

接下来,通常定义某种布局,比如 LinearLayout.(但不是必须的)

xml的Android命名空间总是在布局文件的第一个元素中声明。

xmlns:android="http://schemas.android.com/apk/res/android"

 

第四步

 

我们需要创建一个布局来支持我位的 列表。

 

 

第五步

 

我们还要为每行定义视图

1.新建一个文件 res/layout/notes_row.xml.

2.加入如下内容

?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1"
   
xmlns:android="http://schemas.android.com/apk/res/android"
   
android:layout_width="wrap_content"
   
android:layout_height="wrap_content"/>
并保存
打开 R.java类,你会看到  notes_row text1 的定义。说明,现在我们可以在我们的程序中访问它们了。
第六步

 

 

 

原创粉丝点击