InputMethod(輸入法)

前言html

本章內容是android.view.inputmethod.InputMethod,爲輸入法相關章節,版本爲Android 2.3 r1,翻譯來自"六必治",歡迎你們訪問他的博客:http://www.cnblogs.com/zcmky/,再次感謝"六必治" !期待你加入Android API 中文的翻譯,聯繫我over140@gmail.com。 java

 

聲明android

歡迎轉載,但請保留文章原始出處:) session

博客園:http://www.cnblogs.com/架構

Android中文翻譯組:http://code.taobao.org/project/view/404/ ide

 

正文spa

1、結構.net

public interface InputMethod extends Object翻譯

        

android.view.inputmethod.InputMethodrest

 

間接子類

AbstractInputMethodService.AbstractInputMethodImpl, InputMethodService.InputMethodImpl

 

2、類概述

InputMethod接口表明了輸入法,它可生成按鍵事件,生成文本,如數字,email地址,CJK字符,其它語言字符等等。在處理輸入事件時,將文本返回至須要文本輸入的應用程序。InputMethodManager可獲得更多關於架構的信息。

應用程序一般不使用這個接口自己,而是依靠TextView EditText提供的標準交互。

輸入法實現一般爲InputMethodService及其子類的派生。在實現輸入法時,包含它的服務控件必須提供SERVICE_META_DATA元數據字段,該元數據字段聯接至一包含輸入法細節的XML資源。全部輸入法也一定要求客戶端包含BIND_INPUT_METHOD以便與服務控件交互。若是不這樣,系統將沒法使用輸入法,因其沒法確認是否完整。

InputMethod 接口實際上分爲兩部分:接口是輸入法的最高級接口,提供全部的訪問,只有系統能訪問(須要 BIND_INPUT_METHOD 權限)。另外調用方法 createSession(android.view.inputmethod.InputMethod.SessionCallback) 可實例化 InputMethodSession 副接口,用於與客戶端通信。
 

3、內部類

         interface          InputMethod.SessionCallback

 

4、常量

public static final String SERVICE_INTERFACE

接口名字,實現輸入法的服務應說明它支持輸入法,也就是它將用於意向過濾器(intent filter)。服務還須要BIND_INPUT_METHOD權限,這樣應用程序不會濫用它。

常量值: "android.view.InputMethod"

 

public static final String SERVICE_META_DATA

輸入法經過此名字發佈其自身信息。此元數據必須引用一個包含< input-method>標籤的XML資源。

常量值: "android.view.im"

 

public static final int SHOW_EXPLICIT

用於showSoftInput(int, ResultReceiver)的標誌:它表示用戶顯式地要求其(軟鍵盤)顯示。若是沒有設置,系統決定多是一個好主意,顯示輸入法在用戶界面上的導航操做。

常量值: 1 (0x00000001)

 

public static final int SHOW_FORCED

標誌用於showSoftInput(int, ResultReceiver):代表用戶強制其(軟鍵盤)顯示。如設置,輸入法保持可見直至用戶在UI上取消。

常量值: 2 (0x00000002)

 

5、公共方法

public abstract void attachToken (IBinder token)

輸入法建立後首先被調用,它提供一個與系統服務會話的惟一令牌。它須要經過服務識別輸入法從而驗證其操做。令牌不能傳遞給應用程序,因其取得了應用程序不該獲得的特殊權限。

注意:爲避免惡意客戶端傷害,你應只接收第一個令牌。其後可能來自客戶端。

 

public abstract void bindInput (InputBinding binding)

將輸入法與新的應用程序環境綁定,以便稍後啓動、中止輸入處理。一般在應用程序第一次啓用輸入法時調用此方法。

參數

binding    與輸入法綁定的應用程序窗口信息。

參見

                        InputBinding

                   unbindInput()

 

public abstract void createSession (InputMethod.SessionCallback callback)

建立一個新的InputMethodSession,它可處理客戶應用程序與輸入法的交互。你能夠隨後用revokeSession(InputMethodSession)銷燬會話,這樣就不會有任何客戶端使用它。

參數

callback 新建立會話調用的接口。

 

public abstract void hideSoftInput (int flags, ResultReceiver resultReceiver)

將輸入法的軟鍵盤(soft input)部分對用戶隱藏。

參數

flags        顯示要求的附加信息。當前老是

resultReceiver  向要求顯示的客戶端通知結果。其結果可能爲InputMethodManager.RESULT_UNCHANGED_SHOWN, InputMethodManager.RESULT_UNCHANGED_HIDDEN,InputMethodManager.RESULT_SHOWN, InputMethodManager.RESULT_HIDDEN

 

public abstract void restartInput (InputConnection inputConnection, EditorInfo attribute)

輸入法需重置時調用此方法。

一般輸入焦點從一個文本框移至另外一個時調用此方法。

參數

inputConnection     可選,肯定與文本框通信的輸入通信通道;如爲空,你使用一般綁定的輸入通信通道。

attribute          文本框(一般是EditText)須要輸入的屬性

參見

                            EditorInfo

 

public abstract void revokeSession (InputMethodSession session)

關閉並銷燬先前由createSession(android.view.inputmethod.InputMethod.SessionCallback)建立的會話。調用後,會話再也不有效,對其的調用將失敗。

參數

session  先前由SessionCallback.sessionCreated()提供的InputMethodSession將被吊銷。

 

public abstract void setSessionEnabled (InputMethodSession session, boolean enabled).

控制某特定輸入法會話是否激活。

參數

session  先前由SessionCallback.sessionCreated()提供的InputMethodSession將改變。

 

public abstract void showSoftInput (int flags, ResultReceiver resultReceiver)

將輸入法的軟鍵盤(soft input)部分對用戶顯示。

參數

flags  提供顯示要求的附加信息。當前爲或設置SHOW_EXPLICIT 位。

resultReceiver  向要求顯示的客戶端通知結果。其結果可能爲InputMethodManager.RESULT_UNCHANGED_SHOWN, InputMethodManager.RESULT_UNCHANGED_HIDDEN,InputMethodManager.RESULT_SHOWN, InputMethodManager.RESULT_HIDDEN

 

public abstract void startInput (InputConnection inputConnection, EditorInfo info)

應用程序開始接收文本,輸入法準備好爲應用程序處理接收事件並返回文本時調用本方法。

參數

inputConnection     可選,肯定與文本框通信的輸入通信通道;如爲空,你使用一般綁定的輸入通信通道。

info  須要輸入的文本框(一般是EditText)信息。

參見

                        EditorInfo

 

public abstract void unbindInput ()

         解除與應用程序的綁定,先前由bindInput(InputBinding)設定的信息對當前輸入法無效時調用。

一般在應用程序變爲非前臺調用。
相關文章
相關標籤/搜索