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。