Android edittext 屬性inputtype詳解

上個(gè)星期看公司一個(gè)項(xiàng)目中靈活用到edittext 屬性inputtype。inputtype屬性不僅可以再xml里面定義。還可以在activity設(shè)置的。項(xiàng)目應(yīng)用場(chǎng)景是這樣。一個(gè)頁面需要很多的對(duì)話框輸入,包括需要字符型,數(shù)字型,或者密碼輸入。但是只做了一個(gè)彈出對(duì)話框,然后不同調(diào)用這個(gè)對(duì)話框,用唯一碼識(shí)別那個(gè)按鍵調(diào)用彈出。那么彈出來對(duì)話框(輸入類型)要靈活設(shè)置。就需要activity傳遞inputtype這個(gè)屬性值進(jìn)行設(shè)置。因?yàn)檫@個(gè)對(duì)話框都只調(diào)用了一個(gè)xml。這是一個(gè)場(chǎng)景吧。

一、先說說xml里面的調(diào)用,這個(gè)都不陌生的說。

       <EditText
            android:id="@+id/edittext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="number" />

這里輸入是數(shù)字吧。

二、activity里的調(diào)用?;蛘咂渌鹀lass。

EditText testEditText = (EditText) findViewById(R.id.edittext);
        int inputType = InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL;
        testEditText.setInputType(inputType);

這個(gè)inputType值是不會(huì)很好用啊。靈活吧!
那我貼圖看一下源碼中InputType屬性類吧。如下圖,

image
image

這上面貼就是inputype全部屬性了,這些多看看,都是英文單詞。

三、順便介紹一下xml的inputtype的值。 android:inputType=”none”
android:inputType=”text”
android:inputType=”textCapCharacters” 字母大寫
android:inputType=”textCapWords” 首字母大寫
android:inputType=”textCapSentences” 僅第一個(gè)字母大寫
android:inputType=”textAutoCorrect” 自動(dòng)完成
android:inputType=”textAutoComplete” 自動(dòng)完成
android:inputType=”textMultiLine” 多行輸入
android:inputType=”textImeMultiLine” 輸入法多行(如果支持)
android:inputType=”textNoSuggestions” 不提示
android:inputType=”textUri” 網(wǎng)址
android:inputType=”textEmailAddress” 電子郵件地址
android:inputType=”textEmailSubject” 郵件主題
android:inputType=”textShortMessage” 短訊
android:inputType=”textLongMessage” 長(zhǎng)信息
android:inputType=”textPersonName” 人名
android:inputType=”textPostalAddress” 地址
android:inputType=”textPassword” 密碼
android:inputType=”textVisiblePassword” 可見密碼
android:inputType=”textWebEditText” 作為網(wǎng)頁表單的文本
android:inputType=”textFilter” 文本篩選過濾
android:inputType=”textPhonetic” 拼音輸入
//數(shù)值類型
android:inputType=”number” 數(shù)字
android:inputType=”numberSigned” 帶符號(hào)數(shù)字格式
android:inputType=”numberDecimal” 帶小數(shù)點(diǎn)的浮點(diǎn)格式
android:inputType=”phone” 撥號(hào)鍵盤
android:inputType=”datetime” 時(shí)間日期
android:inputType=”date” 日期鍵盤
android:inputType=”time” 時(shí)間鍵盤

四、介紹edittext其他常用屬性,網(wǎng)絡(luò)上收集的。

android:layout_gravity="center_vertical" 設(shè)置控件顯示的位置:默認(rèn)top,這里居中顯示,還有bottom android:hint="請(qǐng)輸入數(shù)字!"設(shè)置顯示在空間上的提示信息

android:numeric="integer" 設(shè)置只能輸入整數(shù),如果是小數(shù)則是:decimal
android:singleLine="true" 設(shè)置單行輸入,一旦設(shè)置為true,則文字不會(huì)自動(dòng)換行。
android:password="true" 設(shè)置只能輸入密碼
android:textColor = "#ff8c00" 字體顏色
android:textStyle="bold" 字體,bold, italic, bolditalic

android:textSize="20dip" 大小
android:capitalize = "characters" 以大寫字母寫
android:textAlign="center" EditText沒有這個(gè)屬性,但TextView有 android:textColorHighlight="#cccccc" 被選中文字的底色,默認(rèn)為藍(lán)色
android:textColorHint="#ffff00" 設(shè)置提示信息文字的顏色,默認(rèn)為灰色

android:textScaleX="1.5" 控制字與字之間的間距
android:typeface="monospace" 字型,normal, sans, serif, monospace

android:background="@null" 空間背景,這里沒有,指透明
android:layout_weight="1" 權(quán)重,控制控件之間的地位,在控制控件顯示的大小時(shí)蠻有用的。
android:textAppearance="?android:attr/textAppearanceLargeInverse" 文字外觀,這里引用的是系統(tǒng)自帶的一個(gè)外觀,?表示系統(tǒng)是否有這種外觀,否則使用默認(rèn)的外觀。不知道這樣理解對(duì)不對(duì)?

通過EditText的layout xml文件中的相關(guān)屬性來實(shí)現(xiàn):
1. 密碼框?qū)傩?android:password="true" 這條可以讓EditText顯示的內(nèi)容自動(dòng)為星號(hào),輸入時(shí)內(nèi)容會(huì)在1秒內(nèi)變成*字樣。
2. 純數(shù)字 android:numeric="true" 這條可以讓輸入法自動(dòng)變?yōu)閿?shù)字輸入鍵盤,同時(shí)僅允許0-9的數(shù)字輸入
3. 僅允許 android:capitalize="cwj1987" 這樣僅允許接受輸入cwj1987,一般用于密碼驗(yàn)證 下面是一些擴(kuò)展的風(fēng)格屬性
android:editable="false" 設(shè)置EditText不可編輯
android:singleLine="true" 強(qiáng)制輸入的內(nèi)容在單行
android:ellipsize="end" 自動(dòng)隱藏尾部溢出數(shù)據(jù),一般用于文字內(nèi)容過長(zhǎng)一行無法全部顯示時(shí)

雖然這些都是很簡(jiǎn)單,但也很常用。細(xì)節(jié)需要注意,才能做到極致。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容