安卓自定义View键盘输入InputConnection的API

InputConnection接口的实现的基类,负责提供与Editable的连接的大多数常见行为。此类的实现者将希望确保实现 getEditable()提供对自己的可编辑对象的访问,并参考中的文档InputConnection。

int CURSOR_UPDATE_IMMEDIATE InputMethodManager#updateCursorAnchorInfo(android.view.View, CursorAnchorInfo)无论光标/锚位置如何变化,都要求编辑人员尽快调用 。
int CURSOR_UPDATE_MONITOR InputMethodManager#updateCursorAnchorInfo(android.view.View, CursorAnchorInfo) 每当更改光标/锚位置时,要求编辑器调用 。
int GET_EXTRACTED_TEXT_MONITOR 用于标记的标记,用于getExtractedText(ExtractedTextRequest, int)指示您希望在提取的文本发生更改时接收更新。
int GET_TEXT_WITH_STYLES 与一起使用的标志getTextAfterCursor(int, int),getTextBeforeCursor(int, int)并 getSurroundingText(int, int, int)与文字一起返回样式信息。
int INPUT_CONTENT_GRANT_READ_URI_PERMISSION 使用此标志时,编辑器将能够请求对InputContentInfo对象中包含的内容URI的读取访问权。

Public方法

  • beginBatchEdit在API级别3中添加

      public boolean beginBatchEdit ()
      默认实现不执行任何操作。
    

    ######### return

    boolean 如果正在进行批处理编辑,则为true,否则为false。由于此方法开始批量编辑,因此,除非输入连接不再有效,否则它将始终返回true。
  • clearMetaKeyStates

    在API级别3中添加

      public boolean clearMetaKeyStates (int states)
      默认实现用于 MetaKeyKeyListener.clearMetaKeyState(long, int)清除状态。
    
    #### 参数
    states int:要清除的状态,可以是一位或多位。KeyEvent.getMetaState()
    return
    boolean 成功时为true,如果输入连接不再有效,则为false。
  • closeConnection在API级别24中添加

      public void closeConnection ()
      默认实现调用finishComposingText()和 setImeConsumesInput(false)。
      如果重写此方法,则必须调用超类实现。
    
  • commitCompletion在API级别3中添加

      public boolean commitCompletion (CompletionInfo text)
      默认实现不执行任何操作,并返回false。
    

    参数

    text CompletionInfo:已提交的完成。

    return

|boolean| 成功时为true,如果输入连接不再有效,则为false。

  • commitContent在API级别25中添加

      public boolean commitContent (InputContentInfo inputContentInfo, 
                      int flags, 
                      Bundle opts)
      默认实现,View#performReceiveContent如果allows插入了视图内容,则在目标视图上调用;否则返回false,没有任何副作用。
    

    参数

    inputContentInfo InputContentInfo:要插入的内容。此值不能为null。
    flags int:如果内容提供者允许或如果应用程序不需要调用 。InputConnection.INPUT_CONTENT_GRANT_READ_URI_PERMISSIONgrantUriPermissions0InputContentInfo#requestPermission()
    opts Bundle:可选的捆绑包数据。这可以null。此值可能是null。

    return

|boolean| true如果该请求被应用程序接受,则该请求是否已被处理或仍在后台处理false。|

  • commitCorrection在API级别11中添加

      public boolean commitCorrection (CorrectionInfo correctionInfo)
      默认实现不执行任何操作,并返回false。
    

    参数

| | |
| --- | ---| 

|correctionInfo |CorrectionInfo:有关更正的详细信息。|

#### return
| | |
| --- | --- | 
|boolean|   成功时为true,如果输入连接不再有效,则为false。在以后的版本中,当目标应用程序未实现此方法时,返回false。Build.VERSION_CODES.N|
  • commitText在API级别3中添加

      public boolean commitText (CharSequence text, 
                      int newCursorPosition)
      默认实现用给定的文本替换任何现有的组成文本。此外,只有在后备模式下,才会为新文本发送键事件,并清除当前的可编辑缓冲区。
    

    参数

    text CharSequence:要提交的文本。这可能包括样式。
    newCursorPosition int:文本周围的新光标位置,以Java字符表示。如果> 0,则相对于文本的结尾-1;如果<= 0,则相对于文本的开头。因此,将值1始终会将光标移到插入全文后的位置。请注意,这意味着您无法将光标定位在文本内,因为编辑器可以对您提供的文本进行修改,因此无法正确地在其中指定位置。

    return

    boolean 成功时为true,如果输入连接不再有效,则为false。
  • deleteSurroundingText在API级别3中添加

      public boolean deleteSurroundingText (int beforeLength, 
                      int afterLength)
      默认实现在可编辑文本的当前选择位置附近执行删除。
    

    参数

    beforeLength int:要删除的光标之前的字符数,以代码单位。如果它大于文本开头和光标之间的现有字符数,则此方法不会失败,但是会删除该范围内的所有字符。
    afterLength int:要删除的光标后的字符数,以代码单位。如果它大于光标和文本结尾之间现有字符的数量,则此方法不会失败,但是会删除该范围内的所有字符。

    return

    boolean true当选定的文本被删除,false当或者选择无效或尚未附接(即选择的开始或结束为-1),或可编辑的文本是null。
  • deleteSurroundingTextInCodePoints在API级别24中添加

      public boolean deleteSurroundingTextInCodePoints (int beforeLength, 
                      int afterLength)
      默认实现在可编辑文本的当前选择位置附近执行删除。
    

    参数

    beforeLength int:要删除的光标之前的字符数,以代码点为单位。如果它大于文本开头和光标之间的现有字符数,则此方法不会失败,但是会删除该范围内的所有字符。

|afterLength |int:要删除的光标后的字符数,以代码点为单位。如果它大于光标和文本结尾之间现有字符的数量,则此方法不会失败,但是会删除该范围内的所有字符。|

#### return

| | |
| --- | ---|
|boolean    |成功时为true,如果输入连接不再有效,则为false。false当目标应用程序不实现此方法时返回 。|
  • endBatchEdit在API级别3中添加

      public boolean endBatchEdit ()
      默认实现不执行任何操作。
    

    return

    boolean 如果在关闭最新的一次之后仍在进行批处理编辑,则返回true(换句话说,如果嵌套计数> 0),否则返回false,或者如果输入连接不再有效。
  • finishComposedText在API级别3中添加

      public boolean finishComposingText ()
      默认实现从当前可编辑文本中删除撰写状态。此外,只有在后备模式下,才会为新文本发送键事件,并清除当前的可编辑缓冲区。
    

    return

    boolean 成功时为true,如果输入连接不再有效,则为false。
  • getComposedSpanEnd在API级别3中添加

      public static int getComposingSpanEnd (Spannable text)
    

    参数

    text Spannable

    return

    int
  • getComposedSpanStart在API级别3中添加

      public static int getComposingSpanStart (Spannable text)
    

    参数

    text Spannable

    return

    int
  • getCursorCapsMode在API级别3中添加

      public int getCursorCapsMode (int reqModes)
      默认实现使用TextUtils.getCapsMode获取可编辑文本中当前选择位置的光标大写模式,除非在后备模式下始终返回0。
    

    参数

    reqModes int:要检索的所需模式,如所定义 。定义这些常量是为了使您可以直接将当前值直接传递 到此处。TextUtils.getCapsModeTextBoxAttribute.contentType

    return

    int 在当前光标位置有效的大写模式标志。请参阅中的TYPE_TEXT_FLAG_CAPS_ * InputType。
  • getEditable在API级别3中添加

      public Editable getEditable ()
      返回编辑操作的目标。默认实现返回其自己的伪可编辑内容,该可编辑内容仅用于撰写文本。真正的文本编辑器的子类应重写并提供自己的子类。
    

    return

    Editable
  • getExtractedText在API级别3中添加

      public ExtractedText getExtractedText (ExtractedTextRequest request, 
                      int flags)
      默认实现始终返回null。
    

    参数

    request ExtractedTextRequest:说明如何返回文本。 ExtractedTextRequest
    flags int:其他选项来控制客户端,无论是0或 。InputConnection.GET_EXTRACTED_TEXT_MONITOR

    return

    ExtractedText 一个ExtractedText 对象,该对象描述文本视图的状态并包含提取的文本本身;如果输入连接不再有效,则该对象为null,如果编辑器由于某种原因而不能满足该请求。
  • getHandler在API级别24中添加

      public Handler getHandler ()
      由调用,InputMethodManager以使应用程序开发人员可以指定一个专用对象,Handler在该专用对象上将分派来自输入方法的传入IPC方法调用。
    
    注意:从输入方法调用时,此操作不起作用。

    return

    Handler null使用默认值Handler。
  • getSelectedText在API级别9中添加

      public CharSequence getSelectedText (int flags)
      默认实现返回当前选定的文本;如果未选择,则返回null。
    

    参数

    flags int:提供控制文本返回方式的其他选项。可能是0或。InputConnection.GET_TEXT_WITH_STYLES

    return

    CharSequence 当前选择的文本(如果有);如果未选择任何文本,则为null。在以后的版本中,当目标应用程序未实现此方法时,返回false。Build.VERSION_CODES.N
  • getSurroundingText在Android S中添加

      public SurroundingText getSurroundingText (int beforeLength, 
                      int afterLength, 
                      int flags)
      默认实现返回缓冲区中当前光标位置周围给定数量的文本。
    

    参数

    beforeLength int:值为0或更大
    afterLength int:值为0或更大
    flags int:提供控制文本返回方式的其他选项。可能是 0或。值是或InputConnection.GET_TEXT_WITH_STYLES0InputConnection.GET_TEXT_WITH_STYLES

    return

    SurroundingText 此值可能是null。
  • getTextAfterCursor在API级别3中添加

      public CharSequence getTextAfterCursor (int length, 
                      int flags)
      默认实现是从缓冲区中的当前光标位置返回给定数量的文本。
    

    参数

|length| int:值为0或更大|
|flags| int:提供控制文本返回方式的其他选项。可能是0或。InputConnection.GET_TEXT_WITH_STYLES|

#### return

| | |
| --- | ---|
|CharSequence   |此值可能是null。|
  • getTextBeforeCursor在API级别3中添加

    public CharSequence getTextBeforeCursor (int length,
    int flags)
    默认实现是从缓冲区中的当前光标位置返回给定数量的文本。

    参数

    length int:值为0或更大
    flags int:提供控制文本返回方式的其他选项。可能是0或。InputConnection.GET_TEXT_WITH_STYLES

    return

    CharSequence 此值可能是null。
  • performContextMenuAction在API级别3中添加

      public boolean performContextMenuAction (int id)
      默认实现不执行任何操作。
    

    参数

    id int

    return

    boolean
  • performEditorAction在API级别3中添加

      public boolean performEditorAction (int actionCode)
      默认实现将其转换为Enter键。
    

    参数

    actionCode int:这必须是动作常数之一 ,如 。EditorInfo.editorTypeEditorInfo.EDITOR_ACTION_GO

    return

|boolean |成功时为true,如果输入连接不再有效,则为false。|

  • performPrivateCommand在API级别3中添加

      public boolean performPrivateCommand (String action, 
                      Bundle data)
      默认实现不执行任何操作。
    

    参数

    action String:要执行的命令的名称。此 名称必须是作用域名称,即以您拥有的软件包名称为前缀,以便不同的开发人员不会创建冲突的命令。
    data Bundle:命令中要包含的所有数据。

    return

    boolean 如果发送了命令,则返回true(无论关联的编辑器是否理解),如果输入连接不再有效,则返回false。
  • removeComposedSpans在API级别3中添加

    public static final void removeComposingSpans (Spannable text)

    参数

    text Spannable
  • reportFullscreenMode在API级别3中添加

      public boolean reportFullscreenMode (boolean enabled)
      使用当前的全屏模式更新InputMethodManager。
    

    参数

    enabled boolean

    return

    boolean 对于编辑作者,返回值将始终被忽略。对于IME作者,此操作始终true在以前的设备和以后的设备上返回。Build.VERSION_CODES.N_MR1falseBuild.VERSION_CODES.O
  • requestCursorUpdates在API级别21中添加

      public boolean requestCursorUpdates (int cursorUpdateMode)
      默认实现不执行任何操作。
    

    参数

    cursorUpdateMode int:和/或 。通过禁用的效果 。InputConnection.CURSOR_UPDATE_IMMEDIATEInputConnection.CURSOR_UPDATE_MONITOR0InputConnection.CURSOR_UPDATE_MONITOR

    return

    boolean true如果请求已安排。false指示何时该应用程序将不会调用 。在以后的版本中,当目标应用程序未实现此方法时,也会返回。InputMethodManager#updateCursorAnchorInfo(android.view.View, CursorAnchorInfo)Build.VERSION_CODES.Nfalse
  • sendKeyEvent在API级别3中添加

      public boolean sendKeyEvent (KeyEvent event)
      提供用于将键事件发送到连接到输入连接的视图的窗口的标准实现。
    

    参数

    event KeyEvent:关键事件。

    return

    boolean 成功时为true,如果输入连接不再有效,则为false。
  • setComposedRegion在API级别9中添加

      public boolean setComposingRegion (int start, 
                      int end)
      将文本的某个区域标记为组成文本。如果存在组成区域,则字符将保持原样,并且删除了组成跨度,就像finishComposingText() 已被调用一样。使用用于编写文本的默认样式。
      
      传递的索引将剪切到内容范围。如果结果区域的大小为零,则不会标记任何区域,其效果与call相同finishComposingText()。开始和结束的顺序并不重要。实际上,从头到尾的区域和从头到尾的区域是相同的。编辑作者,准备接受一个大于结束的起点。
      
      由于这不会更改文本的内容,因此编辑器不应调用 InputMethodManager#updateSelection(View, int, int, int, int),IME也不应接收 InputMethodService.onUpdateSelection(int, int, int, int, int, int)。
      
      这对光标/选择位置没有影响。这可能会导致光标位于组成区域内部或外部的任何位置,包括选择区域和组成区域部分或全部重叠的情况。
    

    参数

    start int:组成区域在文本中开始的位置
    end int:组成区域在文本中的结束位置

    return

    boolean 成功时为true,如果输入连接不再有效,则为false。在以后的版本中,当目标应用程序未实现此方法时,将返回false。Build.VERSION_CODES.N
  • setComposedSpans在API级别3中添加

      public static void setComposingSpans (Spannable text)
    

    参数

    text Spannable
  • setComposedText在API级别3中添加

      public boolean setComposingText (CharSequence text, 
                      int newCursorPosition)
      默认实现将给定的文本放入可编辑的文本中,替换任何现有的组成文本。新文本被标记为具有合成样式的合成状态。
    

    参数

    text CharSequence:必要时使用样式的撰写文字。如果没有样式对象附加到文本,则使用用于编写文本的默认样式。有关Spanned如何将样式对象附加到文本的信息,请参见。SpannableString和 SpannableStringBuilder是接口的两种实现Spanned。
    newCursorPosition int:文本周围的新光标位置。如果> 0,则相对于文本的结尾-1;如果<= 0,则相对于文本的开头。因此,将值1始终会将您带到插入全文后的位置。请注意,这意味着您无法将光标定位在文本内,因为编辑器可以对您提供的文本进行修改,因此无法正确地在其中指定位置。

    return

    boolean 成功时为true,如果输入连接不再有效,则为false。
  • setSelection在API级别3中添加

      public boolean setSelection (int start, 
                      int end)
      默认实现会更改当前可编辑文本中的选择位置。
    

    参数

    start int:选择开始的字符索引。
    end int:选择应在何处结束的字符索引。

    return

    boolean 成功时为true,如果输入连接不再有效,则为false。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容