notepad exercise 1

    技术2022-05-20  34

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

    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个域, _id, title 和body。

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

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

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

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

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

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

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

    其它的域依次是:selection, selectionArgs, groupBy, having  和 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"

     

    第四步

     

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

     

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/no_notes"/> </LinearLayout> 

    第五步

     

    我们还要为每行定义视图

    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 的定义。说明,现在我们可以在我们的程序中访问它们了。 第六步

     

     

     


    最新回复(0)