系統(tǒng)控件是Android系統(tǒng)提供給用戶已經封裝的界面控件,它提供應用程序開發(fā)過程中常見功能控件。同時,系統(tǒng)控件更有利于幫助用戶進行快速開發(fā),能夠使Android系統(tǒng)中應用程序的界面保持一致性。本文要介紹的是Android系統(tǒng)控件TextView和EditText。
TextView是一種用于顯示字符串的控件;EditText則是用來輸入和編輯字符串的控件,它是一個具有編輯功能的TextView。
每個TextView期望的這樣一個組件的屬性:可以改變它的高度、寬度、字體、文字顏色、背景顏色等。TextView也有一些有用的獨特屬性,如表1所示。
表1 TextView也有一些有用的獨特屬性
屬性名稱 |
屬性說明 |
autoLink |
如果設置(TRUE),發(fā)現文本中所顯示的URL,并自動將它們轉換為可點擊鏈接 |
autoText |
如果設置(TRUE),發(fā)現并糾正在文本簡單的拼寫錯誤 |
editable |
如果設置(TRUE),表示程序已定義的輸入方法來接收輸入文字(對TextView來說默認是false,對EditText來說默認是true) |
inputMethod |
標識的輸入法(EditText上定義一個通用文本) |
下面就通過一個例子來加深對這兩個控件的理解。

圖-1 TextView與EditView效果圖
首先,建立一個“TextViewDemo”的程序,包含TextView和EditText兩個控件,如圖-1所示。上方“用戶名”部分使用的是TextView,下方的文字輸入框使用的是EditText。
TextViewDemo在XML文件中的代碼如代碼清單1所示。
代碼清單1 main.xml
<TextView android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView01" >
</TextView>
<EditText android:id="@+id/EditText01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="EditText01" >
</EditText>
在上述代碼中,第1行android:id屬性聲明了TextView的ID,這個ID主要用于在代碼中引用這個TextView對象;“@+id/TextView01”表示所設置的ID值;@表示后面的字符串是ID資源;加號(+)表示需要建立新資源名稱,并添加到R.java文件中;斜杠后面的字符串(TextView01)表示新資源的名稱;如果資源不是新添加的,或屬于Android框架的ID資源,則不需要使用加號(+),對于Android框架中的ID資源,還必須添加Android包的命名空間,如android:id="@android:id/empty"。
第2行的android:layout_width屬性用來設置TextView的寬度,wrap_content表示TextView的寬度只要能夠包含所顯示的字符串即可。
第3行的android:layout_height屬性用來設置TextView的高度。
第4行表示TextView所顯示的字符串,在后面將通過代碼更改TextView的顯示內容。
第7行中“fill_content”表示EditText的寬度將等于父控件的寬度。
在上述步驟之后,修改TextViewDemo.java文件中代碼為代碼清單2所示的代碼:
代碼清單5-10 TextViewDemo.java
TextView textView = (TextView)findViewById(R.id.TextView01);
EditText editText = (EditText)findViewById(R.id.EditText01);
textView.setText("用戶名:");
editText.setText("");
第1行代碼的findViewById()方法能夠通過ID引用界面上的任何控件,只要該控件在XML文件中定義過ID即可。
第3行代碼的setText()方法用來設置TextView所顯示的內容。