android notepad教程,Android入门开发指南之Notepad 练习

Android入门开发指南之Notepad练习

在这个练习中,你将创建一个简单的文本列表,让用户添加文本但是不能编辑它们,这个例子演示了:

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

如何访问和保存文本到SQLife数据库中。

如何使用ArrayAdapter(最简单的绑定ListView的方法)绑定相互聚到一个ListView。

基本的屏幕布局,包括如何布局列表视图,如何添加条目到实体菜单,尸体如何处理这些菜单的选种动作。

[Exercise 1] [Exercise 2] [Exercise 3] [Extra Credit]

第1步

在Eclipse中打开Notepadv1工程。

Notepadv1工程提供一个起点,它关心的事建立样板文件的工作,如果你学习过Hell.Android tutorial例子,你对这些应该比较熟悉。操作步骤如下:

a.在包浏览器中右击,选择导入/一般/现有工程进入工作区。

b.点击浏览按钮,移动到你复制三个练习的文件夹,选择Notepadv1文件夹,然后点击OK。

c.你将看到Notepadv1列在工程列表中,并且后面带有一个选择框。

d.点击结束。

e.这个练习工程将打开并且列出在Eclipse的包浏览器中。

f.如果你看到一个关于AndroidManifest.xml的错误,或者其它关于Android压缩文件的错误,右击工程从弹出菜单中选择Android Tools-> Fix Project Properties (对库文件而言,工程处在不正确的未知,这样操作可以修复它)。

第2步

访问和修改数据

这个练习中,我们将使用一个SQLite数据库来直接保存我们的数据,但是在实际的应用,使用一个合适的ContentProvider简化这个行为的方法更为普遍。

如果你感兴趣,你可以找到关于content providers的更多信息,或者你可以参考关于存储,获得和刷新数据的主题。

注意这个类DBHelper --- 这个类提供来压缩数据到一个SQLite数据库来保存我们的文本数据并且允许我们更新它。

典型情况下你将使用ContrentProvider来执行,事实上,在SDK中的完整的Notepad应用就是执行的这样一个ContentProvider。然而,没有理由你不和我们这里一样直接使用自己的SQLite数据库。关键值得注意的问题是这个类为我们提供的存储,获取和更新SQLite数据库中的数据的细节。许多方法又来获取多行,根据行标识获取一行,创建一个新的行,删除一个存在的行和更新一行数据。如果你想获取如何在我们的应用中使用SQLite数据库的指南,你可以详细阅读这个类的文档或者,更好的办法就是,查看SDK中samples/目录下的Notepad应用程序时如何使用ContentProvider的。

第3步

布局和实体

许多实体都关联一个布局。布局是实体面向用户的脸面。在这个例子中,我们的布局将布满全屏并且提供一个文本列表。

全屏布局不是实体唯一的选择。你可以参考一个浮动布局(例如,一个对话框或者警告栏),或者某些情况下你根本就不需要布局(实体将对用户隐藏直到你为它指定某个布局)。

打开res/layout目录下的notepad_list.xml文件来查看:这是一个布局定义文件,带有一个默认的起点,我们提供了注解方便你更快的掌握它:

a.所有的Android布局文件都以XML行开头。

b.同样下面的定义通常是一些布局文件的定义,在这个例子中是LinearLayout。

c.注意在Android中的xml名字空间应当定义在最外层的布局中,因此android:tags就可以用在甚于的文件中。

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

第4步

我们需要创建布局来容纳我们的列表。调价代码到LinearLayout标签中,因此整个文件看起来就像是这个样子的:(你可能需要顺序点击source tab页来编辑这个xml文件)

01

02

03

android:layout_width="wrap_content"

04

android:layout_height="wrap_content">

05

06

android:layout_width="wrap_content"

07

android:layout_height="wrap_content"/>

08

09

android:layout_width="wrap_content"

10

android:layout_height="wrap_content"

11

android:text="@string/no_notes"/>

12

a.ListView和TextView可以作为两个可切换的视图,每次只能显示一个。ListView用来显示文本列表,而TextView(是一个字符串资源,默认值为”No Notes Yet!”,如果没有文本是显示这个字符串)。

b.ListView和TextView字符串中的@字符表示XML分析器将使用一个资源标识来分析和展开字符串中剩余的部分。

c.android:list 和android:empty是Android平台为我们提供的标签,当列表适配器中没有数据时,empty默认参数。列表适配器知道去搜索默认的特殊字。可选择的做法是,你可以使用列表适配器的setEmptyView()方法选择改变默认的empty视图。更广泛的是,android.R类是系统提供的一套预定义资源,而你的工程的R类是一套你自己定义的资源。Android.R资源类中存在的西元可以XML文件中使用,方法是android:名字空间前缀(就像我们看到的那样)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值