一、引言
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的子類,所以在基本使用上基本沒有太大的難度,但是想做的更好,需要研究的更深入些。附上一些擴展的使用案例。