Android的文本和輸入之創(chuàng)建輸入法教程
輸入法編輯器(IME)是讓用戶輸入文本的控件。Android提供了一個(gè)可擴(kuò)展的的輸入法的框架,它允許應(yīng)用程序給用戶提供另外的輸入法,如軟鍵盤或語音輸入。這些輸入法一旦安裝,用戶就可以從系統(tǒng)的設(shè)置中選擇他們想要使用的IME,并且這個(gè)設(shè)置對(duì)整個(gè)系統(tǒng)都是有效的,每次只有一種輸入法是可用的。
要在Android系統(tǒng)中添加一種輸入法,你就要?jiǎng)?chuàng)建一個(gè)包含繼承了InputMethodService類的類應(yīng)用程序。另外,你通常還要?jiǎng)?chuàng)建一個(gè)“settings”Activity,把選項(xiàng)傳遞給IME服務(wù)。你還可以定義一個(gè)用于設(shè)置的UI,讓它做為系統(tǒng)設(shè)置的一部分來顯示。
本文包含以下內(nèi)容:
1. IME的生命周期。
2. 在應(yīng)用程序的清單中聲明IME組件;
3. IME API
4. 設(shè)計(jì)IME的UI
5. 從IME中把文本發(fā)送給應(yīng)用程序
6. 使用IME子類型
IME的生命周期
下圖介紹IME的生命周期:

圖1.IME的生命周期
下列章節(jié)介紹如何實(shí)現(xiàn)UI以及代碼如何跟這個(gè)生命周期相關(guān)聯(lián)。
在清單中生命IME組件
在Android系統(tǒng)中,IME是一個(gè)包含了特殊IME服務(wù)的Android應(yīng)用程序。應(yīng)用程序的清單文件必須聲明服務(wù)、申請(qǐng)必要的權(quán)限、提供跟action.view.InputMethod操作相匹配的Intent過濾器、以及定義IME的特性的元數(shù)據(jù)。另外,還要提供一個(gè)設(shè)置界面,允許用戶用它來編輯IME的行為,你可以定義一個(gè)從系統(tǒng)設(shè)置中能夠啟動(dòng)的“settings”的Activity。
以下清單片段聲明了IME服務(wù)。它申請(qǐng)了允許把服務(wù)連接到系統(tǒng)的IME的BIND_INPUT_METHOD權(quán)限,建立了一個(gè)跟android.view.InputMethod操作相匹配的Intent過濾器,并且給IME定義了元數(shù)據(jù):
<!-- Declares the input method service -->
<service android:name="FastInputIME"
android:label="@string/fast_input_label"
android:permission="android.permission.BIND_INPUT_METHOD">
<intent-filter>
<action android:name="android.view.InputMethod" />
</intent-filter>
<meta-data android:name="android.view.im" android:resource="@xml/method" />
</service>
接下來給IME聲明了用于設(shè)置的Activity。它有一個(gè)ACTION_MAIN類型的Intent過濾器,這指明了該Activity是IME應(yīng)用程序的主入口:
<!-- Optional: an activity for controlling the IME settings -->
<activity android:name="FastInputIMESettings"
android:label="@string/fast_input_settings">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
</activity>
你還可以在這個(gè)設(shè)置的UI中提供對(duì)IME設(shè)置的直接訪問。
- Android 顯示和隱藏輸入法實(shí)現(xiàn)代碼
- Android程序打開和對(duì)輸入法的操作(打開/關(guān)閉)
- Android中Activity啟動(dòng)默認(rèn)不顯示輸入法解決方法
- Android輸入法彈出時(shí)覆蓋輸入框問題的解決方法
- Android中系統(tǒng)默認(rèn)輸入法設(shè)置的方法(輸入法的顯示和隱藏)
- Android監(jiān)聽輸入法彈窗和關(guān)閉的實(shí)現(xiàn)方法
- Android 點(diǎn)擊屏幕空白處收起輸入法軟鍵盤(手動(dòng)打開)
- Android InputMethodManager輸入法簡(jiǎn)介
- Android自定義View接收輸入法輸入的內(nèi)容
- Android實(shí)現(xiàn)彈出輸入法時(shí)頂部固定中間部分上移的效果
相關(guān)文章
Android APT 實(shí)現(xiàn)控件注入框架SqInject的示例
這篇文章主要介紹了Android APT 實(shí)現(xiàn)控件注入框架SqInject的示例,幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-03-03
Android自定義控件實(shí)現(xiàn)UC瀏覽器語音搜索效果
這篇文章主要為大家詳細(xì)介紹了Android自定義控件實(shí)現(xiàn)UC瀏覽器語音搜索效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
手勢(shì)滑動(dòng)結(jié)束Activity基本功能的實(shí)現(xiàn)(一)
這篇文章主要為大家詳細(xì)介紹了手勢(shì)滑動(dòng)結(jié)束Activity基本功能的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
android studio集成ijkplayer的示例代碼
本篇文章主要介紹了android studio集成ijkplayer的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
Android中截取當(dāng)前屏幕圖片的實(shí)例代碼
該篇文章是說明在Android手機(jī)或平板電腦中如何實(shí)現(xiàn)截取當(dāng)前屏幕的功能,并把截取的屏幕保存到SDCard中的某個(gè)目錄文件夾下面。實(shí)現(xiàn)的代碼如下:2013-08-08
Android設(shè)置鬧鐘相對(duì)完善的解決方案
這篇文章主要為大家詳細(xì)介紹了Android設(shè)置鬧鐘相對(duì)完善的解決方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06

