android指定輸入法型別
編寫:zhaochunqi - 原文:http://developer.android.com/training/keyboard-input/style.html
每個文字框都對應特定型別的文字輸入,如Email地址,電話號碼,或者純文字。為應用中的每一個文字框指定輸入型別是很重要的,這樣做可以讓系統展示更為合適的軟輸入法(比如虛擬鍵盤)。
除了輸入法可用的按鈕型別之外,我們還應該指定一些行為,例如,輸入法是否提供拼寫建議,新的句子首字母大寫,和將回車按鈕替換成動作按鈕(如 Done 或者 Next)。這節課介紹瞭如何新增這些屬性。
指定鍵盤型別
通過將 android:inputType 屬性新增到 <EditText> 節點中,我們可以為文字框宣告輸入法。
舉例來說,如果我們想要一個用於輸入電話號碼的輸入法,那麼使用 "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"
值來隱藏使用者的輸入:
<EditText
android:id="@+id/password"
android:hint="@string/password_hint"
android:inputType="textPassword"
... />
Figure 2. textPassword
輸入型別
有幾種可供選擇的值在 android:inputType
記錄在屬性中,一些值可以組合起來實現特定的輸入法外觀和附加的行為。
開啟拼寫建議和其它行為
android:inputType 屬性允許我們為輸入法指定不同的行為。最為重要的是,如果文字框用於基本的文字輸入(如簡訊息),那麼我們應該使用 "textAutoCorrect"
值來開啟自動拼寫修正。
Figure 3. 新增 textAutoCorrect
為拼寫錯誤提供自動修正
我們可以將不同的行為和輸入法形式組合到 android:inputType 這個屬性。如:如何建立一個文字框,裡面的句子首字母大寫並開啟拼寫修正:
<EditText
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType=
"textCapSentences|textAutoCorrect"
... />
指定輸入法的行為
多數的軟鍵盤會在底部角落裡為使用者提供一個合適的動作按鈕來觸發當前文字框的操作。預設情況下,系統使用 Next 或者 Done,除非我們的文字框允許多行文字(如android:inputType="textMultiLine"
),這種情況下,動作按鈕就是回車換行。然而,我們可以指定一些更適合我們文字框的額外動作,比如 Send 和 Go。
Figure 4. 當我們宣告瞭 android:imeOptions="actionSend"
,會出現 Send 按鈕。
使用android:imeOptions 屬性,並設定一個動作值(如 "actionSend"
或 "actionSearch"
),來指定鍵盤的動作按鈕。如:
<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" />
然後,我們可以通過為 EditText 節點定義 TextView.OnEditorActionListener 來監聽動作按鈕的按壓。在監聽器中,響應 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;
}
});
轉發自:http://hukai.me/android-training-course-in-chinese/input/keyboard-input/type.html
相關文章
- 從一次輸入框無法輸入的bug,談如何限制輸入框輸入型別型別
- 實現多子型別輸入法:如何在 HarmonyOS中載入不同的輸入模式型別模式
- imemode 控制輸入法,控制輸入框的輸入法
- Android輸入法開發 新手學習指引Android
- USB入門系列(四)傳輸型別型別
- iOS 使用正則判斷輸入型別iOS型別
- [java IO流]之 基本資料型別輸入輸出流Java資料型別
- Android 9.0 新增預置第三方輸入法/設定預設輸入法(軟鍵盤)Android
- Android輸入系統(三)InputReader的加工型別和InputDispatcher的分發過程Android型別
- Android 9.0 預設輸入法的設定流程分析Android
- win10怎麼安裝別的語言的輸入法 win10如何新增別的語言的輸入法Win10
- jQuery匹配指定type型別input元素jQuery型別
- manjaro中文輸入法JAR
- 五筆輸入法入門
- android輸入法機制的學習總結(未完待續)Android
- CentOS 7 輸入中文 & 安裝搜狗輸入法CentOS
- Android輸入事件詳解Android事件
- win10預設輸入法怎麼刪除輸入法 win10預設輸入法如何刪除Win10
- Win10電腦搜狗輸入法無法輸入中文及輸入法欄不見了的解決方法Win10
- win10 如何更改輸入法 win10 如何更改輸入法Win10
- Linux Ubuntu 20.04 LTS 解決無法輸入中文 輸入法問題LinuxUbuntu
- win10輸入法特殊字元怎麼輸入_win10微軟輸入法輸入特殊符號操作方法Win10字元微軟符號
- Dart語法超光速入門(1):內建型別Dart型別
- 輸入和輸出基礎語法
- ubuntu新增中文輸入法Ubuntu
- ElementaryOS的輸入法配置
- Windows 輸入法詳解Windows
- printf 中 % 別代表的輸出型別型別
- 解決同時安裝搜狗輸入法和谷歌輸入法後fcitx無法使用谷歌
- win10增加輸入法的方法_win10輸入法如何新增Win10
- Win10輸入法設定方法_win 10 輸入法如何設定Win10
- 7-1 混合型別資料格式化輸入型別
- 金山衛士:輸入法不見了系感染型木馬作怪
- Android 輸入系統介紹Android
- 2.5.9.1 指定預設表空間的型別型別
- 【Android Studio】解決 Android Studio2.2 無法輸入中文標點符號的問題Android符號
- js基本語法之 值型別(資料型別)(變數型別)JS資料型別變數
- Android開發-獲取系統輸入法高度的正確姿勢Android
- Android開發 - 獲取系統輸入法高度的正確姿勢Android