W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
編寫:zhaochunqi - 原文:http://developer.android.com/training/keyboard-input/style.html
每個(gè)文本框都對(duì)應(yīng)特定類型的文本輸入,如Email地址,電話號(hào)碼,或者純文本。為應(yīng)用中的每一個(gè)文本框指定輸入類型是很重要的,這樣做可以讓系統(tǒng)展示更為合適的軟輸入法(比如虛擬鍵盤)。
除了輸入法可用的按鈕類型之外,我們還應(yīng)該指定一些行為,例如,輸入法是否提供拼寫建議,新的句子首字母大寫,和將回車按鈕替換成動(dòng)作按鈕(如 Done 或者 Next)。這節(jié)課介紹了如何添加這些屬性。
通過(guò)將 android:inputType 屬性添加到 <EditText> 節(jié)點(diǎn)中,我們可以為文本框聲明輸入法。
舉例來(lái)說(shuō),如果我們想要一個(gè)用于輸入電話號(hào)碼的輸入法,那么使用 "phone"
值:
<EditText
android:id="@+id/phone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/phone_hint"
android:inputType="phone" />
Figure 1. phone
輸入類型
或者如果文本框用于輸入密碼,那么使用 "textPassword"
值來(lái)隱藏用戶的輸入:
<EditText
android:id="@+id/password"
android:hint="@string/password_hint"
android:inputType="textPassword"
... />
Figure 2. textPassword
輸入類型
有幾種可供選擇的值在 android:inputType
記錄在屬性中,一些值可以組合起來(lái)實(shí)現(xiàn)特定的輸入法外觀和附加的行為。
android:inputType 屬性允許我們?yōu)檩斎敕ㄖ付ú煌男袨椤W顬橹匾氖?,如果文本框用于基本的文本輸入(如短信息),那么我們?yīng)該使用 "textAutoCorrect"
值來(lái)開(kāi)啟自動(dòng)拼寫修正。
Figure 3. 添加 textAutoCorrect
為拼寫錯(cuò)誤提供自動(dòng)修正
我們可以將不同的行為和輸入法形式組合到 android:inputType 這個(gè)屬性。如:如何創(chuàng)建一個(gè)文本框,里面的句子首字母大寫并開(kāi)啟拼寫修正:
<EditText
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType=
"textCapSentences|textAutoCorrect"
... />
多數(shù)的軟鍵盤會(huì)在底部角落里為用戶提供一個(gè)合適的動(dòng)作按鈕來(lái)觸發(fā)當(dāng)前文本框的操作。默認(rèn)情況下,系統(tǒng)使用 Next 或者 Done,除非我們的文本框允許多行文本(如android:inputType="textMultiLine"
),這種情況下,動(dòng)作按鈕就是回車換行。然而,我們可以指定一些更適合我們文本框的額外動(dòng)作,比如 Send 和 Go。
Figure 4. 當(dāng)我們聲明了 android:imeOptions="actionSend"
,會(huì)出現(xiàn) Send 按鈕。
使用android:imeOptions 屬性,并設(shè)置一個(gè)動(dòng)作值(如 "actionSend"
或 "actionSearch"
),來(lái)指定鍵盤的動(dòng)作按鈕。如:
<EditText
android:id="@+id/search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/search_hint"
android:inputType="text"
android:imeOptions="actionSend" />
然后,我們可以通過(guò)為 EditText 節(jié)點(diǎn)定義 TextView.OnEditorActionListener 來(lái)監(jiān)聽(tīng)動(dòng)作按鈕的按壓。在監(jiān)聽(tīng)器中,響應(yīng) EditorInfo 類中定義的適合的 IME action ID,如 IME_ACTION_SEND 。例如:
EditText editText = (EditText) findViewById(R.id.search);
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_SEND) {
sendMessage();
handled = true;
}
return handled;
}
});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: