1. 程式人生 > >Android零基礎入門第18節:EditText的屬性和使用方法

Android零基礎入門第18節:EditText的屬性和使用方法

-i layout rec 底層 篩選 .com xtra dap xmlns

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的屬性和使用方法