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。
版权声明:本文为yunliuyiyue原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。