IInputConnection.GetTextBeforeCursorFormatted(Int32, GetTextFlags) 方法

定义

获取 <当前光标位置前文本的 var>n</var> 字符。

[Android.Runtime.Register("getTextBeforeCursor", "(II)Ljava/lang/CharSequence;", "GetGetTextBeforeCursor_IIHandler:Android.Views.InputMethods.IInputConnectionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public Java.Lang.ICharSequence? GetTextBeforeCursorFormatted (int n, Android.Views.InputMethods.GetTextFlags flags);
[<Android.Runtime.Register("getTextBeforeCursor", "(II)Ljava/lang/CharSequence;", "GetGetTextBeforeCursor_IIHandler:Android.Views.InputMethods.IInputConnectionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member GetTextBeforeCursorFormatted : int * Android.Views.InputMethods.GetTextFlags -> Java.Lang.ICharSequence

参数

n
Int32

文本的预期长度。 这必须是非负的。

flags
GetTextFlags

提供用于控制如何返回文本的其他选项。 可以是或 0#GET_TEXT_WITH_STYLES

返回

光标位置前的文本;返回的文本长度可能小于 <var>n</var>。

属性

注解

获取 <当前光标位置前文本的 var>n</var> 字符。

如果输入连接变得无效(例如进程崩溃),或者编辑器因文本响应时间过长(返回几秒钟),此方法可能会失败。 在任一情况下,返回 null。 此方法不会以任何方式影响编辑器中的文本,也不会影响所选内容或撰写范围。

如果 #GET_TEXT_WITH_STYLES 以标志的形式提供,编辑器应返回 android.text.SpannableString 文本上设置的所有跨度。

<强>IME 作者:</strong> 请考虑这会触发 IPC 往返,这需要一些时间。 假设此方法占用大量时间。 此外,请记住,编辑器可能会选择返回的字符数少于所请求的字符,即使出于性能原因。 如果使用此方法获取游标的初始文本,可以考虑使用 EditorInfo#getInitialTextBeforeCursor(int, int)EditorInfo#getInitialSelectedText(int)EditorInfo#getInitialTextAfterCursor(int, int) 防止 IPC 成本。

<强编辑作者:</强>>请谨慎执行此调用的争用条件。 IME 可以更改文本并立即使用此方法:需要确保返回的值与最新编辑的结果一致。 此外,如果性能指示,可能会返回小于 n 个字符,但请记住,对于许多函数,IME 依赖于此函数:例如,不应将返回的值限制为当前行,并且特别不要返回 0 个字符,除非游标确实在文本开头。

适用于 . 的 android.view.inputmethod.InputConnection.getTextBeforeCursor(int, int)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于