zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

《Android应用开发入门经典(第3版)》——第6.2节使用输入控件

2023-09-11 14:17:43 时间

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

6.2 使用输入控件
Android应用开发入门经典(第3版)
在很多应用中,需要向用户收集一些基本信息。在一个布局中最基础的数据输入域是EditText。读者在第 1 章的示例应用中已经使用过了EditText。在设计布局时可以使用TextView作为标签,以清楚地阐明意图或增加指示。使用Button可以启动一个动作。

6.2.1 使用TextView和EditView视图
一个TextView会显示一段用户无法改变的文本。EditText视图用于用户输入。与其他控件一样,可以改变TextView和EditText视图的大小、颜色、背景等属性。

本节还将介绍EditText域的另外两个属性:提示属性和inputType。提示会作为内容显示在一个未编辑过的EditText中。如图6.3所示,editText1的提示为“Enter a Name”,editText2的提示为“Enter a Number”。图 6.3 给出了这些控件在Eclipse的可视化编辑器中的情形,其中Edit Hint菜单项处于被选中的状态。


10873635ebf5b5b3aa11163d820e2db868dbdb18

InputType 属性的选项列表很长。InputType 属性的用途是为EditText视图选择一个合适的键盘布局。如果预期输入的是一个数字,那么键盘就会显示数字。如果输入类型应该是一个电子邮件地址,那么键盘应该显示文本和一个@符号。EditText视图提供了一个 getText()方法来获取视图中的当前值。

这个演示应用使用了一个默认的inputType和一个数字inputType。图6.4和图6.5给出了在这两个EditText视图中进行输入时使用的键盘。


ab9f5b5a254bad6106e93b8ac74d445cb45dffa3

要实现FormControlActivity 需要创建一个 FormControlActivity 类和一个包含一个TextView和两个 EditText 视图的 XML 布局文件。FormControlActivity仅使用了 setContentView()来显示布局文件。为显示 FormControlActivity,需要在 MainActivity.java 创建一个 showFormButton按钮并在相应的 onClickListener()方法中添加启动这个 activity 的代码。下面这个方法是在第2章中用于启动一个activity的代码:


c975ac00ddf1c0ef357fcc184595668676f7bff5

6.2.2 使用不同的按钮
在第 1 章中使用过一个未做过任何修改的按钮。读者可以创建各种风格和属性值各异的按钮。

有两个控件是按钮:一个是 Button(android.widget.Button),另一个是ImageButton(android.widget.ImageButton)。一个 Button包含一个文本标签,一个 ImageButton包含一个图像。在 Eclipse 的可视化编辑器中可以通过组件面板的 Form Widgets类别来访问Button,通过 Images and Media 类别来访问ImageButton。

还可以为标准的Button添加一个可绘制的图像,这需要为以下属性中的至少一个提供一个值:drawable_left、drawable_right、drawable_top或drawable_bottom。

程序清单 6.1 给出了一个 XML 布局文件,其中包含了一个 Button、一个 ImageButton以及一个为 drawable_left 设置了一个值的 Button。这个设置了绘制资源的按钮使用了ic_launcher.png 文件,这个图像默认用作应用的图标,当创建activity时会自动创建这个图像。


f3204733b80fcb33264d9164e2b33567bc72d14e

与其他视图一样,在程序中可以修改一个按钮的内容和属性。替换一个ImageButton中的图像或修改一个标准的按钮周围的可绘制图像和文本是有意义的。

现在为在程序清单 6.1 中第 11 行到 第 16 行定义的 button2 添加一个onClickListener()方法。单击按钮会替换图像并更新文本。为找出按钮的当前文本就必须要获取当前所显示的文本。

程序清单6.2给出了实现这一功能的代码,其中使用了getText()和setText()来检查值和修改其内容。要改变图像,可以使用 setCompoundDrawablesWithIntrinsicBounds()方法。传入这个方法的参数是可绘制的资源,其顺序为left、top、right以及bottom。如图6.6所示,给出了用于切换的两个按钮。

踩滑板的机器人图像需要被引入到可绘制的资源文件夹中。


6d1e37ae1bb08fd414611740a938897b6dabc654

创建一个自定义背景的按钮需要做一些额外的工作。需要为按钮的各个状态准备一个可绘制的图像。一个按钮可以显示在一个页面上,可以是页面上具有焦点的控件,可以被用户按下。这3个按钮状态的显示将会不同。为处理这3种情况需要在可绘制资源目录中创建一个 XML 文件来引用这3种按钮状态。实际上这个 XML 文件是一个可绘制的资源。

程序清单 6.3 给出 了 button_custom.xml 的内容。在本例中的 XML 文件中使用的各个可绘制资源是一个实心的颜色图像。这个文件位于可绘制资源文件夹中。要使用诸如斜边之类的效果的话,建议使用nine-patch图像。要定制一个 Button 的背景,可以将其相应的属性设置为button_custom.xml文件,这可以通过将这个文件作为一个可绘制资源引用来完成,如:


32a6e6514abe7ee5c0c5d62495e9cb05471ff404

《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.4节运行应用 本节书摘来自异步社区《Android应用开发入门经典(第3版)》一书中的第1章,第1.4节运行应用,作者 【美】Carmen Delessio , Lauren Darcey , Shane Conder,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.4 运行应用 Android应用开发入门经典(第3版) 要运行这个应用需要执行下列步骤。
《Android应用开发入门经典(第3版)》——第1.3节理解Java代码和XML布局 本节书摘来自异步社区《Android应用开发入门经典(第3版)》一书中的第1章,第1.3节理解Java代码和XML布局,作者 【美】Carmen Delessio , Lauren Darcey , Shane Conder,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.3 理解Java代码和XML布局 Android应用开发入门经典(第3版) 如前所述,图1.7给出了XML文件activity_main.xml所表示的图形布局。
《Android应用开发入门经典(第3版)》——第1.2节立即创建一个简单的应用 本节书摘来自异步社区《Android应用开发入门经典(第3版)》一书中的第1章,第1.2节立即创建一个简单的应用,作者 【美】Carmen Delessio , Lauren Darcey , Shane Conder,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.2 立即创建一个简单的应用 Android应用开发入门经典(第3版) 在本节中读者将会创建并运行一个简单的应用。
《Android应用开发入门经典(第3版)》——第1.1节建立开发环境 本节书摘来自异步社区《Android应用开发入门经典(第3版)》一书中的第1章,第1.1节建立开发环境,作者 【美】Carmen Delessio , Lauren Darcey , Shane Conder,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.1 建立开发环境 Android应用开发入门经典(第3版) 要进行Android开发,首先需要创建一个可工作的开发环境。
《Android游戏编程入门经典》——导读 本节书摘来自异步社区《Android游戏编程入门经典》一书中的目录,作者【美】Jonathan S. Harbour,更多章节内容可以访问云栖社区“异步社区”公众号查看
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。