首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 Android 和 XML 构建动态用户界面(4)

使用 Android 和 XML 构建动态用户界面(4)

数据模型这个应用程序的具体细节要求它向一个用户显示输入元素,验证数据,然后将数据提交到一个指定服务器。如果这个应用程序只针对新记录设置,那么它什么用处也没有,因为它不支持查询现有记录以便编辑或删除。
要向应用程序提供足够的关于如何显示数据录入表单的指示,需要一个信息集(通常称为元数据)。元数据是关于数据的数据。简言之,这个应用程序必须理解几个数据元素,包括:
  • Form Name— 人们可读的表单名称
  • Form Identifier— 这个元数据收集的惟一标识符
  • Submission URL— 收集到的数据的发送地址
  • 一个或多个字段— 这些字段可能是文本、数字,或者 “从列表中选择” 类型的字段
几乎所有种类的问题都映射到这三种类型的用户界面元素中的一种。例如,可以实现一个复选框作为一个 Yes 或 No 选择字段。可以实现多重选择(multi-select)作为多选字段。当然,您可以随意扩展本教程中展示的代码。
对于您的应用程序,使用场景如下:您在参加一个活动,其中您可以注册一个或多个项目。您可以填写一张注册表,也可以等到回家后登录该组织的网站进行注册。在本例中,您将假定一位用户将通过在一个 Android 设备上下载一个动态表单,以便在现场从他的手机填写一张简单表单,提供申请者的姓名、性别和年龄。
清单 1 显示了 xmlgui1.xml 的内容,该文件表示一个 Robotics 俱乐部活动的注册表单。
清单 1. xmlgui1.xml
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<xmlgui>
<form id="1" name="Robotics Club Registration"
   submitTo="http://serverurl/xmlgui1-post.php" >
<field name="fname" label="First Name" type="text" required="Y" options=""/>
<field name="lname" label="Last Name" type="text" required="Y" options=""/>
<field name="gender" label="Gender" type="choice" required="Y" options="Male|Female"/>
<field name="age" label="Age on 15 Oct. 2010" type="numeric" required="N" options=""/>
</form>
</xmlgui>




注意关于这个 XML 文档的以下几点:
  • 这个 XML 非常容易解析,这要归功于元素属性的广泛使用。之所以使用这种方法,原因是与多个子元素和标记相比,它使提取数据更容易。以这种方式使用属性还能保持较小的下载大小,并有助于保持较低的解析时间。
  • submitTo 属性告知应用程序,数据收集完成后将要发送到的位置。
  • 每个 field 元素同时提供一个字段名和一个标签的属性。尽管这些值是相关的,但您希望每个 name 属性的值都保持惟一,以便接收应用程序能够正确解析并处理它们。您还应该向用户提供一个提示性 label 值,提示用户什么种类的数据将进入一个特定字段。
  • 您可以轻松扩展这个方法以包含每个字段的默认值,一个用于验证的 regex 表达式,或者一个获取关于特殊字段的更多信息的链接。
  • options 字段用作 choice 字段的一个受限列表。
基本了解数据模型后,现在看看负责将这个 XML 数据转化为一个有用应用程序的代码。
返回列表