文本控件包括TextView、EditText、AutoCompleteTextView、CheckedTextView、MultiAutoCompleteTextView、TextInputLayout等,其中TextView、EditText是最基本最重要的文本控件,是必须要掌握的文本控件。
1.TextView
TextView控件用于显示文本信息,新建工程中默认生成的"Hello World!"就是一个TextView。如图1所示,“手机号”、“昵称”等都是TextView控件。
图1 TextView示意图
新建工程后,默认打开的activity_main.xml文件的Design页面中,选中TextView,即可在右侧的Attributes窗口看到TextView的属性,如图2所示。单击如图3所示Code按钮,即可看到activity_main.xml文件的代码,图3红色框中代码即是TextView已声明的属性,与图2中的Declared Attributes一一对应。
图2 activity_main.xml文件的Design页面
图3 activity_main.xml文件的Code页面
开发者可以修改Design页面Attributes窗口中属性的值来改变TextView的静态显示,也可以直接修改Code页面的代码来改变TextView的静态显示。若需要动态修改TextView的属性则需要在Java代码中通过调用属性对应的方法来修改。在Java代码中操作TextView需要先通过id找到该控件,使用findViewById()方法。
图4 Attributes窗口设置id
例如通过Java程序将TextView显示的文本修改为“Hello Android!”,首先在Attributes窗口或XML代码中将该TextView的id设置为“textViewHello”,如图4所示。然后在程序里使用findViewById()方法找到该id,最后使用text属性对应的Setter方法——setText()设置需要显示的文本,代码如下。
TextView textViewHello = findViewById(R.id.textViewHello);
textViewHello.setText("Hello Android!");
滚动Attributes窗口可以查看TextView支持的属性名称及当前值或默认值。如图5所示,当前TextView的Text当前值为“Hello World!”,textAppearance默认值为“@android:style/TextAppearance.Material.Small”。
图5 Attributes当前值和默认值
常用的TextView属性及其对应的功能和方法如表3-1所示,这些属性都可以在Attributes窗口或XML代码中进行设置。
表1 TextView的常用属性
属性名 | 作用 | 方法名 |
android:id | 设置 TextView控件的唯一标识 | void setId(int id) |
android:background | 设置TextView控件的背景 | void setBackground(Drawable background) |
android:text | 设置文本内容 | void setText(CharSequence text) |
android:textColor | 设置文字显示的颜色 | void setTextColor(int color) |
android:textSize | 设置文字大小,推荐单位为sp | void setTextSize(float size) |
android:textStyle | 设置文本样式,如bold(粗体),italic(斜体),normal(正常) | void setTypeface(@Nullable Typeface tf) |