这两种写法都可以实现对按钮点击事件的监听,至于使用哪一种就全凭你的喜好了。
EditText是程序用于和用户进行交互的另一个重要控件,它允许用户在控件里输入和编辑内 容,并可以在程序中对这些内容进行处理。EditText的应用场景非常普遍,在进行发短信、发微 博、聊QQ等操作时,你不得不使用EditTexto那我们来看一看如何在界面上加入EditText吧, 修改activity main.xml中的代码,如下所示:
其实看到这里,我估计你已经总结出Android控件的使用规律了,用法基本上都很相似:给控件定义一个id,再指定控件的宽度和高度,然后再适当加入一些控件特有的属性就差不多了。
所以使用XML来编写界面其实一点都不难,完全可以不用借助任何可视化工具来实现。现在重新运行一下程序,EditText就已经在界面上显示出来了,并且我们是可以在里面输入内容的, 如图3.5所示。
细心的你平时应该会留意到,一些做得比较人性化的软件会在输入框里显示一些提示性的文 字,然后一旦用户输入了任何内容,这些提示性的文字就会消失。这种提示功能在Android里是 非常容易实现的,我们甚至不需要做任何的逻辑控制,因为系统已经帮我们都处理好了。修改 activity main.xml, 如下所示:
这里使用android:hint属性指定了一段提示性的文本,然后重新运行程序,效果如图3.6 所示。
可以看到,EditText中显示了一段提示性文本,然后当我们输入任何内容时,这段文本就会自动消失。
不过,随着输入的内容不断增多,EditText会被不断地拉长。这时由于EditText的高度指定的是wrap_content,因此它总能包含住里面的内容,但是当输入的内容过多时,界面就会变得非常难看。我们可以使用android:maxLines属性来解决这个问题,修改activity_main.xml,如下所示:
这里通过android :maxLines指定了 EditText的最大行数为两行,这样当输入的内容超过两 行时,文本就会向上滚动,而EditText则不会再继续拉伸,如图3.7所示。
我们还可以结合使用EditText与Button来完成一些功能,比如通过点击按钮来获取EditText 中输入的内容。修改MainActivity中的代码,如下所示:
首先通过findViewById()方法得到EditText的实例,然后在按钮的点击事件里调用EditText 的getText()方法获取到输入的内容,再调用toStringO方法转换成字符串,最后还是老方法, 使用Toast将输入的内容显示出来。
重新运行程序,在EditText中输入一段内容,然后点击按钮,效果如图3.8所示。
ImageView是用于在界面上展示图片的一个控件,它可以让我们的程序界面变得更加丰富多 彩。学习这个控件需要提前准备好一些图片,图片通常都是放在以“drawable”开头的目录下的。 目前我们的项目中有一个空的drawable目录,不过由于这个目录没有指定具体的分辨率,所以一 般不使用它来放置图片。这里我们在res目录下新建一个drawable-xhdpi目录,然后将事先准备 好的两张图片img l.png和img_2.png复制到该目录当中。
接下来修改activity main.xml,如下所示:
可以看到,这里使用android:src属性给ImageView指定了一张图片。由于图片的宽和高 都是未知的,所以将ImageView的宽和高都设定为w「ap_content,这样就保证了不管图片的尺 寸是多少,图片都可以完整地展示出来。重新运行程序,效果如图3.9所示。
我们还可以在程序中通过代码动态地更改ImageView中的图片,然后修改MainActivity的代 码,如下所示:
在按钮的点击事件里,通过调用Image View的setImageResource()方法将显示的图片改成 img_2,现在重新运行程序,然后点击一下按钮,就可以看到ImageView中显示的图片改变了, 如图3.10所示。
ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据。它的用法也 非常简单,修改activity main.xml中的代码,如下所示:
重新运行程序,会看到屏幕中有一个圆形进度条正在旋转,如图3.11所示。
这时你可能会问,旋转的进度条表明我们的程序正在加载数据,那数据总会有加载完的时候 吧?如何才能让进度条在数据加载完成时消失呢?这里我们就需要用到一个新的知识点: Android控件的可见属性。所有的Android控件都具有这个属性,可以通过android: visibility 进行指定,可选值有3种:visible, invisible和gone。visible表示控件是可见的,这个 值是默认值,不指定android:visibility时,控件都是可见的。invisible表示控件不可见, 但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了。gone则表示控件不仅 不可见,而且不再占用任何屏幕空间。我们还可以通过代码来设置控件的可见性,使用的是 setvisibility()方法,可以传入 View. VISIBLE. View. INVISIBLE 和 View.GONE 这 3 种值。
接下来我们就来尝试实现,点击一下按钮让进度条消失,再点击一下按钮让进度条出现的这 种效果。修改MainActivity中的代码,如下所示:
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.xrbh.cn/tnews/11508.html