美文网首页
安卓自定义View键盘输入InputConnection的API

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

作者: icechao | 来源:发表于2021-04-07 12:38 被阅读0次

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。

相关文章

网友评论

      本文标题:安卓自定义View键盘输入InputConnection的API

      本文链接:https://www.haomeiwen.com/subject/bztukltx.html