Android的文本和輸入---建立IME

來源:互聯網
上載者:User

截取硬體的按鍵事件 即使IME視窗沒有明確的焦點,它也會首先接收到硬體的按鍵事件,並能夠選擇是使用還是把它們轉寄給應用程式。例如,在文本編排期間,你可以使用方向鍵在IMEUI的候選區進行導航。你也可以捕獲回退鍵來消除從IME視窗彈出的任何視窗。 重寫onKeyDown()和onKeyUp()方法來擷取硬體的按鍵事件。 對於不想自己處理的按鍵,要記住調用super()方法。 建立IME的子類型 子類型運行IME來展現多種輸入模式以及由IME所支援的語言。一個子類型可以表現為: 1. 一種語言環境,如en_US或fr_FR; 2. 一種輸入模式,如語音、鍵盤或手寫; 3. 其他的輸入樣式、格式、或特殊的IME屬性,如10個鍵或qwerty鍵盤的布局等。 基本上模式是任意文字,如“keyboard”、“voice”等等。 一個子類型也可以是這些類型的一個組合。 子類型資訊被用於IME的切換,在通知欄和IME設定視窗中可以使用。這些資訊也允許架構直接攜帶特定的IME子類型。當你建立一個IME時,可以方便的使用子類型,因為它會協助使用者標識並完成不同IME語言和模式之間的切換。 使用<subtype>元素在IME的XML資源檔中定義一種子類型。下面的樣本中定義了兩種子類型:一種是用於美國英語環境的鍵盤子類型,另一中是用於法語環境的鍵盤子類型: <input-method xmlns:android="http://schemas.android.com/apk/res/android"         android:settingsActivity="com.example.softkeyboard.Settings"         android:icon="@drawable/ime_icon"     <subtype android:name="@string/display_name_english_keyboard_ime"             android:icon="@drawable/subtype_icon_english_keyboard_ime"             android:imeSubtypeLanguage="en_US"             android:imeSubtypeMode="keyboard"             android:imeSubtypeExtraValue="somePrivateOption=true"     />     <subtype android:name="@string/display_name_french_keyboard_ime"             android:icon="@drawable/subtype_icon_french_keyboard_ime"             android:imeSubtypeLanguage="fr_FR"             android:imeSubtypeMode="keyboard"             android:imeSubtypeExtraValue="foobar=30,someInternalOption=false"     />     <subtype android:name="@string/display_name_german_keyboard_ime"             ...     /> /> 使用%s來獲得與子類型的語言標籤相同的子類型標籤,以便確保你的子類型在UI中被正確的標記。以下是IME的部分XML檔案:     <subtype         android:label="@string/label_subtype_generic"         android:imeSubtypeLocale="en_US"         android:icon="@drawable/icon_en_us"         android:imeSubtypeMode="keyboard" /> 以下是部分的IME的strings.xml檔案。字串資源label_subtype_generic被IME的UI用於設定子類型的標籤,定義如下: <stringname="label_subtype_generic">%s</string> 這樣在任何英語的語言環境中,就會把子類型的顯示名稱設定為“English(United States)”,或者是其他對應的語言。   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.