Android零基礎入門第18節:EditText的屬性和使用方法
EditText與TextView非常相似,它甚至與TextView 共用了絕大部分XML屬性和方法。EditText與TextView的最大區別在於:EditText可以接受用戶輸入。
一、EditText簡介
EditText支持的XML屬性及相關方法見TextView表中介紹的與輸入有關的屬性和方法,其中比較重要的一個屬性是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還派生了如下兩個子類。
- AutoCompleteTextView:帶有自動完成功能的EditText。由於該類通常需要與 Adapter結合使用,因此將會在下一章進行學習。
- ExtractEditText:並不是UI組件,而是EditText組件的底層服務類,負責提供全屏輸入法支持。
二、EditText示例
接下來通過一個簡單的示例程序來學習EditText的常見用法。
繼續使用上期創建的WidgetSample工程,在app/main/res/layout/目錄下創建一個edittext_layout.xml文件。
選中layout,鼠標右鍵彈出菜單,依次選擇New -> XML -> Layout XML File,或依次選擇New -> Layout resource file,或者選擇layout後通過File菜單或新建圖標完成,如下圖所示:
彈出XML文件創建頁面,如下圖所示:
在Layout File Name輸入布局名“edittext_layout”,點擊“Finish”完成創建。然後在其中填充如下代碼片段:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="用戶名:" android:textSize="16sp"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入用戶名" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="密碼:" android:textSize="16sp"/> <!-- android:inputType="numberPassword"表明只能接受數字密碼 --> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入密碼" android:inputType="numberPassword"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="年齡:" android:textSize="16sp"/> <!-- inputType="number"表明是數值輸入框 --> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入年齡" android:inputType="number"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="生日:" android:textSize="16sp"/> <!-- inputType="date"表明是日期輸入框 --> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入生日" android:inputType="date"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="電話號碼:" android:textSize="16sp"/> <!-- inputType="phone"表明是輸入電話號碼的輸入框 --> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入電話號碼" android:inputType="phone"/> </LinearLayout>
上面界面布局中的第一個文本框通過android:hint指定了文本框的提示信息:請輸入用戶名——這是該文本框默認的提示。當用戶還沒有輸入時,該文本框內默認顯示這段信息;
第二個輸入框通過android:inputType=numberPassword”設置這是一個密碼框,而且只能接受數字密碼,用戶在該文本框輸入的字符會以點號代替;
第三個輸入框通過android: inputType=number設置為只能接受數值的輸入框;
第四個輸入框通過android:inputType= date指定它是一個日期輸入框;
第五個輸入框通過android:inputType= phone”設置為一個電話號碼輸入框。
然後修改一下app/src/java/MainActivity.java文件中加載的布局文件為新建的edittext_layout.xml文件,修改後的代碼如下:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.edittext_layout); } }
運行程序,可以看到下圖所示界面效果。
EditText的示例程序就先到這裏,關於其他使用方法建議大家自己進行練習。
今天就先到這裏,下一期開始UI組件的學習。如果有問題歡迎留言一起探討,也歡迎加入Android零基礎入門技術討論微信群,共同成長!
往期總結分享:
Android零基礎入門第1節:Android的前世今生
Android零基礎入門第2節:Android 系統架構和應用組件那些事
Android零基礎入門第3節:帶你一起來聊一聊Android開發環境
Android零基礎入門第4節:正確安裝和配置JDK, 高富帥養成第一招
Android零基礎入門第5節:善用ADT Bundle, 輕松邂逅女神
Android零基礎入門第6節:配置優化SDK Manager, 正式約會女神
Android零基礎入門第7節:搞定Android模擬器,開啟甜蜜之旅
Android零基礎入門第8節:HelloWorld,我的第一趟旅程出發點
Android零基礎入門第9節:Android應用實戰,不懂代碼也可以開發
Android零基礎入門第10節:開發IDE大升級,終於迎來了Android Studio
Android零基礎入門第11節:簡單幾步帶你飛,運行Android Studio工程
Android零基礎入門第12節:熟悉Android Studio界面,開始裝逼賣萌
Android零基礎入門第13節:Android Studio配置優化,打造開發利器
Android零基礎入門第14節:使用高速Genymotion,跨入火箭時代
Android零基礎入門第15節:掌握Android Studio項目結構,揚帆起航
Android零基礎入門第16節:Android用戶界面開發概述
Android零基礎入門第17節:TextView屬性和方法大全
此文章版權為微信公眾號分享達人秀(ShareExpert)——鑫鱻所有,若轉載請備註出處,特此聲明!
Android零基礎入門第18節:EditText的屬性和使用方法