天天看點

android api (82) —— InputConnection [輸入法]

正文

  一、結構

public interface InputConnection

android.view.inputmethod.InputConnection

間接子類

  二、概述

  三、常量

  public static final int GET_EXTRACTED_TEXT_MONITOR

  常量值: 1 (0x00000001)

  public static final int GET_TEXT_WITH_STYLES

  四、公共方法

  public abstract boolean beginBatchEdit ()

  public abstract boolean clearMetaKeyStates (int states)

  在指定的輸入連接配接中清除指定的元鍵(meta key)按下狀态。

  參數

  states     清除的狀态,可以是KeyEvent.getMetaState()中的一位或多位結果。

  傳回值

               成功傳回true,當連接配接無效時傳回flase。

  public abstract boolean commitCompletion (CompletionInfo text)

  text          送出的結果。

  public abstract boolean commitText (CharSequence text, int newCursorPosition)

  向文本框送出文本并設定新的光标位置。之前設定的正編輯文字将自動删除。

  text          送出的文本。

  newCursorPosition          文本範圍内新的光标位置。如果大于0,從送出文本末尾-1處計起;<= 0,送出文本開始處計起。是以值為1時,光标将定位于你剛剛插入文本之後。注意你不能光标定位于送出文本中,因為編輯器可以修改你提供的文本,是以不必将光标定位在哪。

  public abstract boolean deleteSurroundingText (int leftLength, int rightLength)

  删除目前光标前的leftLength個字元,并删除目前光标後的rightLength個字元,不包聯想輸入(composing)的文字。

  leftLength       删除的目前光标之前字元個數。

  rightLength     删除的目前光标之後字元個數。

  public abstract boolean endBatchEdit ()

  public abstract boolean finishComposingText ()

  強制結束文本編輯器,無論聯想輸入(composing text)是否激活。文本保持不變,移除任何與此文本的編輯樣式或其他狀态。光标保持不變。

  public abstract int getCursorCapsMode (int reqModes)

               傳回目前有效的大小寫狀态。

  public abstract ExtractedText getExtractedText (ExtractedTextRequest request, int flags)

  擷取目前輸入連接配接的編輯器中的目前文本,并監視是否有變化。函數傳回目前文本,當文本變化時輸入連接配接可選擇性向輸入法發送更新。

  此方法在輸入聯接無效時(如線程沖突)或用戶端等待時間過長(等待幾秒傳回)時可能會失敗。上述情況時傳回null值。

  request  描述文本如何傳回

             傳回一個ExtractedText對象描述文本視窗的狀态,及所包含的提取文本。

  public abstract CharSequence getSelectedText (int flags)

  如果有的話取得所選的文本。

  此方法在輸入連接配接無效時(如線程沖突)或用戶端等待時間過長(等待幾秒傳回)時可能會失敗。上述情況時傳回null值。

               如果有的話傳回目前選取文本,如果沒有文本被選中傳回null。

  public abstract CharSequence getTextAfterCursor (int n, int flags)

  取得目前光标位置後的 n 個字元文本。

  n      期望的文本長度

               傳回目前光标後的文本,傳回的文本長度可能小于 n

  public abstract CharSequence getTextBeforeCursor (int n, int flags)

  取得目前光标位置前的 n 個字元文本。

  本此方法在輸入連接配接無效(如線程沖突)或用戶端等待時間過長(等待幾秒傳回)時可能會失敗。上述情況時傳回null值。

               傳回目前光标前的文本,傳回的文本長度可能小于 n

  public abstract boolean performContextMenuAction (int id)

  public abstract boolean performEditorAction (int editorAction)

  讓編輯器執行一個它可以完成的操作。

  editorAction  必須是動作常量EditorInfo.editorType中的一個,如EditorInfo.EDITOR_ACTION_GO。

               成功傳回true,如輸入連接配接無效傳回false。

  public abstract boolean performPrivateCommand (String action, Bundle data)

  API從輸入法向所連接配接的編輯器發送私有指令。這可用于提供僅用于特定輸入法及其用戶端功能的特定域(domain-specific)。注意,因為InputConnection協定是異步的,你無法取回結果或知道用戶端是否懂得指令;你可能使用 EditorInfo來确定用戶端是否支援某一指令。

  action      要執行的指令名稱。必須是作用域名,字首你自己的包名,這樣不同的開發者就不會建立讓人沖突的指令。

  data         指令中的資料

               當指令發送後傳回true(無論相關的編輯是否了解它),如輸入連接配接無效傳回false。

  public abstract boolean reportFullscreenMode (boolean enabled)

  由IME調用,通知用戶端将在全屏與普通模式間切換。它在 InputMethodService的标準實作中被調用。

  public abstract boolean sendKeyEvent (KeyEvent event)

  向目前輸入連接配接所附着的程序發送按鍵事件。事件像普通按鍵事件一樣由目前焦點,通常是提供InputConnection的視圖。但由于協定的異步性這一點并不總是這樣,焦點可能在事件收到時發生改變。

本方法可用于向應用程式發送按鍵事件。如螢幕鍵盤可以用這一方法模拟硬體鍵盤。标準鍵盤有三種:數字(12鍵),預測鍵盤(20鍵)和字母(QWERTY)。你可以通過事件的裝置碼(device id)确定鍵盤類型。

  event       按鍵事件

               成功傳回true,當輸入連接配接無效傳回false。

         參見

  public abstract boolean setComposingRegion (int start, int end)

  将特定區域設為正在編輯文本。以前設定的正在編輯文本自動移除。文本使用預設正在編輯文本樣式。(稽核注:”composing text”的翻譯還需要後期用例子來推測其含義。)

  start        正在編輯文本開始的位置

  end          正在編輯文本結束的位置。

               成功傳回true,當輸入聯接無效時傳回false。

  public abstract boolean setComposingText (CharSequence text, int newCursorPosition)

  将目前的光标旁正在聯想文本(composing text)替代為給定文本,并設定新光标位置。以前設定的正在編輯文本自動移除。(譯者注:

InputConnection ic = getCurrentInputConnection();

ic.setComposingText("Composi", 1);

    

  )

  text          如必要正在編輯文本有樣式。如文本沒有附帶樣式對象,正在編輯文本将應用預設樣式。見如何在文本上附加樣式{#link android.text.Spanned}。{#link android.text.SpannableString}和{#link   android.text.SpannableStringBuilder}是兩種界面實作方式。

  public abstract boolean setSelection (int start, int end)

  設定文本編輯器的標明文本。設定到目前光标時,開始與結束取相同值。

               成功傳回true,當輸入聯接無效時傳回false。

本文轉自over140 51CTO部落格,原文連結:http://blog.51cto.com/over140/582429,如需轉載請自行聯系原作者

繼續閱讀