《Android》『EditText』- EditText 的基本用法
《Android Developers 參考文獻》
《繼承架構》
extends TextView
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.EditText
《簡單介紹》
與 Button 一樣,EditText 類別繼承自 TextView 類別,也因此 EditText 類別中的很多方法均繼承自 TextView,用法完全一致,以下主要說明一些 EditText 的基本用法。
常用的宣告屬性
以下先列出一個 EditText 元件在 layout.xml 中宣告的方式,並儘量寫出裡面常用的設定屬性。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
. . <EditText android:id = "@+id/edt_inputRoomNumber" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:textStyle="bold" <!--設定字體,bold, italic, bolditalic--> android:textColor = "#ff8c00" <!--設定顯示字樣顏色--> android:textColorHighlight="#cccccc" <!--被選中文字的底色,預設為藍色--> android:textScaleX="1.5" <!--設定字與字之間的間距--> android:typeface="monospace" <!--設定字型,normal, sans, serif, monospace--> android:hint="提示字樣" android:textColorHint="#238745" <!--設定提示字樣顏色--> android:singleLine = "true" <!--設為單行顯示--> android:ellipsize="end" <!--自動隱藏溢位數據--> android:inputType="none"/> |
layout.xml
其中的 inputType 被用來告知這個 EditText 的輸入類型,常用屬性網路上可以很輕易地找到有很多人整理過,這邊條列如下 –
android:inputType=”none” (無)
android:inputType=”text” (任何字元)
android:inputType=”textCapCharacters” (字母大寫)
android:inputType=”textCapWords” (首字母大寫)
android:inputType=”textCapSentences” (僅第一個字母大寫)
android:inputType=”textAutoCorrect” (自動修正)
android:inputType=”textAutoComplete” (自動完成)
android:inputType=”textMultiLine” (多行輸入)
android:inputType=”textImeMultiLine” (輸入法多行)
android:inputType=”textNoSuggestions” (不提示)
android:inputType=”textUri” (網址)
android:inputType=”textEmailAddress” (電子郵件地址)
android:inputType=”textEmailSubject” (郵件主題)
android:inputType=”textShortMessage” (短訊)
android:inputType=”textLongMessage” (長訊息)
android:inputType=”textPersonName” (人名)
android:inputType=”textPostalAddress” (地址)
android:inputType=”textPassword” (密碼)
android:inputType=”textVisiblePassword” (可見密碼)
android:inputType=”textWebEditText” (作為網頁表單的文本)
android:inputType=”textFilter” (文本篩選過濾)
android:inputType=”textPhonetic” (拼音輸入)
android:inputType=”number” (數字)
android:inputType=”numberSigned” (帶符號數字格式)
android:inputType=”numberDecimal” (帶小數點的浮點格式)
android:inputType=”phone” (電話鍵盤)
android:inputType=”datetime” (時間日期)
android:inputType=”date” (日期鍵盤)
android:inputType=”time” (時間鍵盤)
如何於程式碼中實作
我們可以在 EditText 一開始定義時,就在 layout.xml 中設定好他的文字內容,但是有時候我們會需要在程式碼中去做設定與取得文字內容的動作,這時就需要使用到 setText 以及 getText 方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
. . public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final EditText edt=(EditText)findViewById(R.id.edt); edt.setText("Hello!"); edt.setHint("this is hint"); String str = edt.getText().toString(); . . . } EditText.OnKeyListener edt_listener = new View.OnKeyListener() { @Override public boolean onKey(View arg0, int arg1, KeyEvent arg2) { // TODO Auto-generated method stub return false; //回傳 false 表示到這邊結束,回傳 true 則會繼續原本 onKey 定義的動作。 } }; . . |
MainActivity.java
其中用到的方法條列如下 –
setText – 設定文字內容
getText – 取得文字內容
setSelection – 設定反白文字內容範圍
setHint – 設定提示訊息
setOnKeyListener – 設定輸入文字按鍵監聽器
延伸閱讀:
臉書留言
一般留言