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个域, _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"
第四步
我们需要创建一个布局来支持我位的 列表。
第五步
我们还要为每行定义视图
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 的定义。说明,现在我们可以在我们的程序中访问它们了。
第六步
- notepad exercise 1
- 38-1-1-Exercise
- Exercise of Thread(1)
- ? P20 Exercise 1-10
- Python Exercise #1
- Assignment 1: Coding Exercise
- Jos-lab2 (Exercise 1)
- [Exercise 1] Linear Regression
- Exercise 1_3_34
- 37-1-2-exercise
- PATA-Exercise No.1
- Exercise
- exercise
- Exercise
- exercise
- C程序设计语言 Exercise 3-1
- Accelerated C++ Exercise 4-1
- Accelerated C++ Exercise 7-1
- C++中string类
- C++命名空间
- ZT 30岁以后才明白
- 排序一个list数组中的元素
- 让页面中的js实现同步加载
- notepad exercise 1
- QSqlDatabase类详细介绍
- Swing表格JTable利用tableModel添加行修改行删除行
- openCV学习笔记(9)-- 图像剪切
- 如何解决.net环境下的软件无法运行
- Windows 内核原理与实现 - 读书笔记
- java 安全 加密 小解
- 用Java Serialization实现任意文件网络传输
- 求助