Android開發:文本控件詳解——EditText(一)基本屬性
一、簡單實例:
EditText輸入的文字樣式部分的屬性,基本都是和TextView中的屬性一樣。
除此之外,EditText還有自己獨有的屬性。
二、基本屬性:
hint | 輸入框顯示的提示文本 |
textColorHint | 輸入框顯示的提示文本的顏色 |
inputType | 限制用戶的輸入類型 |
capitalize | 英文大寫設置 |
minLines | 最小行數 |
maxLines | 最大行數 |
SingleLine | 單行不換行 |
id等屬性都在TextView中出現過,就不再贅述。
1、hint:該輸入框顯示的提示文本
android:hint是文本框中初始顯示的用來提示用戶輸入的屬性,在用戶點擊輸入框開始輸入時就會消失。
android:textColorHint這個屬性則是用來設置提示文本的字體顏色。
<EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:height="40sp" android:layout_centerVertical="true" android:background="@color/colorSlateGray" android:hint="@string/username" android:textColor="@color/colorWhite" android:textColorHint="@color/colorWhite" />
這段代碼的效果如下:
點擊輸入框開始輸入時,提示文字就會消失:
2、inputType:限制用戶的輸入類型
值如下:
text |
普通字符 |
textCapCharacters | 普通字符 |
none | 普通字符 |
textCapSentences | 字符串中的第一個字母大寫 |
textCapWords | 字符串中的每個單詞的首字母大寫 |
textMultiLine | 多行輸入 |
textImeMultiLine | 輸入法多行 |
textUri | 格式為:URI |
textShortMessage | 格式為:短消息 |
textShortMessage | 格式為:長消息 |
textEmailAddress | 格式為:電子郵件地址 |
textEmailSubject | 格式為:郵件主題 |
textPostalAddress | 格式為:郵政 |
textPersonName | 格式為:姓名 |
textPassword | 格式為:不可見密碼 |
textVisiblePassword | 格式為:可見密碼 |
textFilter | 格式為:文本篩選 |
textWebEditText | 格式為:作為網頁表單的文本 |
number | 格式為:數字 |
numberSigned | 格式為:有符號數字 |
numberDecimal | 格式為:浮點數 |
textPhonetic | 格式為:拼音輸入 |
phone | 鍵盤為:撥號 |
date或者datetime | 鍵盤為:日期 |
time | 鍵盤為:時間 |
textAutoCorrect | 前兩個自動完成 |
textAutoComplete | 前兩個自動完成 |
textNoSuggestions | 不進行提示 |
這樣輸入的文字會視為密碼,會自動變成*號,設定為不可見,結果如下:
可以看到,每輸入一個字符,前面的字符就會自動不可見。
如果設置為datetime,則是日期鍵盤:
3、capitalize:英文大寫設置
sentences | 字符串的第一個字母大寫 |
words | 字符串中用空格區分單詞,每個單詞的首字母大寫 |
characters | 字符串中每一個英文字母都大寫 |
這個屬性基本上不怎麽使用了。
4、行數限制:
minLines:設置EditText控件的最小行數,使用這個屬性的時候要去掉android:height,不能設置固定值,且不設置inputType屬性,這樣才能看出效果
最小行數是2,則輸入框的初始大小就是兩行的大小,超過兩行時也會自動擴張。
maxLines:設置EditText控件的最大行數,使用這個屬性的時候要去掉android:height,不能設置固定值,且不設置inputType屬性,這樣才能看出效果
一行時:
四行時:
七行時(超出最大行數4):
文字會自動上移,只保留四行。
singleLine:如果設置為true,則該輸入框為單行輸入不可換行。
其實使用了inputType屬性之後,也是默認為單行輸入不換行,這就是為什麽inputType和minLines、maxLines不能同時存在的原因。
Android開發:文本控件詳解——EditText(一)基本屬性