开发者社区> 异步社区> 正文

《Android应用开发入门经典(第3版)》——第1.5节定制应用

简介: 本节书摘来自异步社区《Android应用开发入门经典(第3版)》一书中的第1章,第1.5节定制应用,作者 【美】Carmen Delessio , Lauren Darcey , Shane Conder,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.5 定制应用 Android应用开发入门经典(第3版) 刚才创建的简单应用会显示如图1.11所示的词组“Hello world!”。
+关注继续查看

本节书摘来自异步社区《Android应用开发入门经典(第3版)》一书中的第1章,第1.5节定制应用,作者 【美】Carmen Delessio , Lauren Darcey , Shane Conder,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.5 定制应用
Android应用开发入门经典(第3版)
刚才创建的简单应用会显示如图1.11所示的词组“Hello world!”。读者可能会想要定制这个应用以加入一些交互性功能,如添加一个可供输入数据的字段和一个按钮,当用户单击按钮时输入的文本会出现在屏幕的中央。

1.5.1 更新用户界面
定制应用的第一步是更新用户界面。

Try It Yourself

使用可视化编辑器更新用户界面

使用内置于ADT的可视化编辑工具可以添加一个按钮和EditText域。EditText域是一个文本输入域。要完成这个任务需要执行下列步骤。

1.在res/layout文件夹中找到activity_main.xml文件,这个文件就是创建应用时所展示的文件。

2.在组件面板的Form Widgets区域中选择一个按钮并将其拖动到应用的画布上,如图1.11所示。

3.选择组件面板中的Text Fields区域,选中第一种EditText域并将其拖动到画布上。在拖动的时候读者可以看到词组“Plain Text”,如图1.12所示。


e9c308b7b2d813827caa072651041fbe7b8c01a0

1.5.2 在代码中增加动作
现在已经为应用定制了一个简单的用户界面,并且也已经添加了引用Button和EditText的代码,下一步要做的就是更新屏幕中央的TextView了。程序清单1.1给出了刚才使用可视化编辑器创建的按钮的XML代码。第2行代码将Button的id指定为button1,EditText的id为editText1,原先的TextView的id为textView1。这些id是非常重要的,因为在代码中将会使用它们来引用这些用户界面。

程序清单1.1 在XML布局中定义的Button


0f263ab41598acd8292ba2f43d8b5ab4a29c96e6

这个按钮的作用是接收在 EditText 输入的信息,并在按钮被点击时将这些信息放入TextView 中。要完成这一任务的第一步是要在用户界面和代码之间建立连接,第二步是在Button上添加一个动作。

读者需要修改生成的代码。在Eclipse中选中MainActivity.java,然后需要修改onCreate()方法中的代码,但在这之前首先需要引入这些用户界面元素。


d473ca3a29720de0bbe5f9f52f0c2fe2fc081b19

这些Java类位于Android的widget包中。

接下来是要在 onCreate()方法中添加代码,以便将布局文件中的资源与代码关联起来,程序清单1.2给出了 onCreate()方法。第5行到第9行定义了一个可在代码中使用的EditText、TextView以及Button,这种关联关系是通过findViewById()方法来建立的。第4行将项目中res/layout文件夹下名为activity_main.xml的XML布局文件与这个Activity绑定了起来。第5行到第8行分别引用了在该文件中定义的各个id。


cd90888396bd553046efc00d6253865d504fa67b

在第5行和第6行的声明中加入了final修饰符。final变量在赋值之后是无法改变其值的。在本例中之所以这样做是为了在处理Button事件的代码中使用这些变量。如果不将变量e声明为final的话,就会在Eclipse中看到如下的错误:


2204db30772c4f94ee345960495dce1a68682b75

这个错误出现在第 10 行。第 10 行在一个内部类中使用了变量 e。第 8 行声明了类OnClickListener()的一个新实例。像这样在一个单独的类中使用一个可能会发生变化的变量是不允许的,而将e声明为一个final变量之后就可以在内部类中使用它了,因为可以确保它的值不会发生变化了。当然,读者也可以将这个EditText定义为类的一个字段,这样的话它就有了全局作用于并且对所有方法都可见了。根据EditText域中的数据来更新TextView的代码位于第10行,它将从变量e中读取的文本设置在变量t中。第10行位于Button b的onClick()方法中。第8行的OnClickListener()告诉Button b监听点击事件。当这个Button上的单击事件发生时就会触发OnClickListener中的onClick()方法,该方法中的代码会更新TextView。

完成这些修改之后,就可以在模拟器中运行这个应用并观察所发生的交互了。`

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Android 应用开发】Canvas 精准绘制文字 ( 文本边界坐标解析 | 绘图位置 )
【Android 应用开发】Canvas 精准绘制文字 ( 文本边界坐标解析 | 绘图位置 )
170 0
【Android 应用开发】Canvas 精准绘制文字 ( 测量文本真实边界 | 将文本中心点与给定中心点对齐 )
【Android 应用开发】Canvas 精准绘制文字 ( 测量文本真实边界 | 将文本中心点与给定中心点对齐 )
77 0
【Android 插件化】现有的针对插件化恶意应用的解决方案 | 插件化应用开发推荐方案
【Android 插件化】现有的针对插件化恶意应用的解决方案 | 插件化应用开发推荐方案
52 0
【Android 插件化】多开原理 | 使用插件化技术的恶意应用 | 插件化的其它风险 | 应用开发推荐方案
【Android 插件化】多开原理 | 使用插件化技术的恶意应用 | 插件化的其它风险 | 应用开发推荐方案
96 0
【Android 应用开发】动态权限管理示例 ( 使用原生代码实现 | 申请权限 | 判定权限申请结果 | 判定 “ 不再询问 “ 情况 )(二)
【Android 应用开发】动态权限管理示例 ( 使用原生代码实现 | 申请权限 | 判定权限申请结果 | 判定 “ 不再询问 “ 情况 )(二)
297 0
【Android 应用开发】动态权限管理示例 ( 使用原生代码实现 | 申请权限 | 判定权限申请结果 | 判定 “ 不再询问 “ 情况 )(一)
【Android 应用开发】动态权限管理示例 ( 使用原生代码实现 | 申请权限 | 判定权限申请结果 | 判定 “ 不再询问 “ 情况 )(一)
140 0
【Android 应用开发】Android 杀进程总结 ( 杀后台进程 | 杀前台进程 | 杀其它进程 )
【Android 应用开发】Android 杀进程总结 ( 杀后台进程 | 杀前台进程 | 杀其它进程 )
813 0
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 最简单用法 | 一行代码搞定权限申请 | 推荐用法 )
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 最简单用法 | 一行代码搞定权限申请 | 推荐用法 )
171 0
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(二)
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(二)
143 0
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(一)
【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )(一)
136 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Android组件化实现
立即下载
蚂蚁聚宝Android秒级编译—— Freeline
立即下载
Android开发之多进程架构
立即下载