您的位置:首页 > 移动开发 > Android开发

Android开发自学笔记(Android Studio)—4.2TextView及其子类

2015-11-03 20:22 896 查看

一、引言

TextView是我们最常用的一个控件了,它类似于C# Winform程序中的Lable,Java Swing编程中的JLable,不过相对功能更强大些,但从功能上看,它其实就是个文字编辑器,只是默认关闭了编辑功能,而EditText这个编辑框控件就是它的直接子类。我们查看一下API(API Level23)中关于TextView的继承关系:





从API文档我们可以看出,TextView直接继承了View类,同时又是我们常用的EditText、Button、CheckBox、RadioButton的父类。

直接子类有:AppCompatTextView、Button、CheckTextView、Chronometer、DigitalClock、EditText、RowHeaderView、TextClock

间接子类有:AppCompatAutoCompleteTextView、AppCompatRadioButton、AutoCompleteTextView、CheckBox、CompoundButton、ExtractEditText、MultiAutoCompleteTextView、RadioButton、SearchEditText、Switch、SwitchCompat、ToggleButton

下面我们着重说一下TextView的属性,其它的子类过一下基本的使用方法。

二、TextView

TextView提供了大量的XML属性,这些属性不仅适用于TextView,同样适用于他的子类,下面给出这些属性及其属性的说明(基于API LEVEL23):





















(本想把API中的属性都弄过来翻一下,太多了啊啊啊啊啊啊啊,这里借用疯狂讲义的截图。。。够用了。)

下面通过代码简单演示一下使用方法,其他的自行琢磨吧。





说明:

1.text1是使用textColor属性设置了字体颜色,textSize属性设置了字体大小

2.text2使用layout_margin设置组件的外边距,上下左右都是20dp,autoLink是为了让组件将超链接直接识别成地址

3.text3使用layout_marginLeft设置了组件的左边距,maxLength设置组件中文字的最大长度,我们可以看到超过7个字符后面的就不显示了

三、EditText的功能和用法

EditText与TextView非常类似,它与TextView共用了绝大部分的属性和方法。最大区别就是EditText支持用户输入。而TextView属性中的有关输入的就是为它准备的,我们看一下它的基本用法。





说明:

1.hint为默认填充的文字,获得焦点后消失

2.inputType为限定输入的类型(枚举类型请查API)

四、Button的功能和用法

Button同样继承了TextView,在界面上展示位一个按钮,用户单击了以后触发onClick方法,简单的使用方法见下图:









说明:

1.按钮1给文字加了阴影

2.按钮2给按钮加了背景色

3.按钮1事件添加采用了直接在布局页绑定生成的方法

4.按钮2事件添加采用在代码页手动绑定

按钮的功能很多,这里只简单介绍了使用方法,扩展使用网上也有很多介绍,这里不再一一演示,给出一些学习的网址,供大家参考:

五、RadioButton和CheckBox

CheckBox和RadioButton控件都只有选中和未选中状态,不同的是RadioButton是单选按钮,需要编制到一个RadioGroup中,同一时刻一个RadioGroup中只能有一个按钮处于选中状态。

以下为CheckBox和RadioButton常用方法及说明。





代码及示意图如下:





我们再来看一下如何获取选中的状态:





六、状态开关(ToggleButton)与开关(Switch)的使用方法

这两个开关都是由Button派生来的,所以Button的属性对于他们两个都适用,他们本质也是按钮,与checkbox类似,但是他们通常用于某种状态的切换。

ToggleButton支持的一些属性:





Switch支持的一些属性:





下面的代码简单的展示一下使用方法:







七、结语

本文介绍的诸多组件都是TextView的子类,所以在基本使用上基本没有太大的难度,但是想做的更好,需要研究的更深入些。附上一些扩展的使用案例。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: