Most visited

Recently visited

Added in API level 3

InputMethodManager

public final class InputMethodManager
extends Object

java.lang.Object
   ↳ android.view.inputmethod.InputMethodManager


中央系统API用于总体输入法架构(IMF)架构,用于仲裁应用程序与当前输入法之间的交互。 您可以使用Context.getSystemService()检索此接口的实例。

涵盖的主题包括:

  1. Architecture Overview
  2. Applications
  3. Input Methods
  4. Security

Architecture Overview

输入法框架(IMF)架构中涉及三个主要参与方:

Applications

在大多数情况下,使用标准TextView或其子类的应用程序几乎不需要使用软输入方法。 你需要注意的主要事情是:

通过这里的API可以实现更细粒度的控制,以直接与IMF及其IME交互 - 显示或隐藏输入区域,让用户选择输入方法等。

对于我们中编写自己的文本编辑器的罕见人员,您需要实现 onCreateInputConnection(EditorInfo)以返回您自己的 InputConnection界面的新实例,从而允许IME与编辑器进行交互。

Input Methods

输入法(IME)实现为Service ,通常从InputMethodService 它必须提供核心InputMethod接口,但通常由InputMethodService处理,实现者只需要处理更高级别的API。

See the InputMethodService class for more information on implementing IMEs.

Security

输入法存在很多安全问题,因为它们本质上具有完全驱动用户界面和监视用户输入内容的自由。 Android输入法框架还允许任意的第三方IME,因此必须小心限制它们的选择和交互。

以下是IMF背后的安全架构的一些要点:

Summary

Constants

int HIDE_IMPLICIT_ONLY

标记为 hideSoftInputFromWindow(IBinder, int)以指示软输入窗口只能在用户未明确显示的情况下隐藏。

int HIDE_NOT_ALWAYS

标志为 hideSoftInputFromWindow(IBinder, int)表示通常应该隐藏软输入窗口,除非它最初显示为 SHOW_FORCED

int RESULT_HIDDEN

showSoftInput(View, int, ResultReceiver)hideSoftInputFromWindow(IBinder, int, ResultReceiver)ResultReceiver结果代码的 hideSoftInputFromWindow(IBinder, int, ResultReceiver) :软输入窗口的状态从显示变为隐藏。

int RESULT_SHOWN

showSoftInput(View, int, ResultReceiver)hideSoftInputFromWindow(IBinder, int, ResultReceiver)ResultReceiver结果代码的 hideSoftInputFromWindow(IBinder, int, ResultReceiver) :软输入窗口的状态从隐藏变为显示。

int RESULT_UNCHANGED_HIDDEN

showSoftInput(View, int, ResultReceiver)hideSoftInputFromWindow(IBinder, int, ResultReceiver)ResultReceiver结果代码的 hideSoftInputFromWindow(IBinder, int, ResultReceiver) :软输入窗口的状态保持不变并保持隐藏状态。

int RESULT_UNCHANGED_SHOWN

showSoftInput(View, int, ResultReceiver)hideSoftInputFromWindow(IBinder, int, ResultReceiver)ResultReceiver结果代码的 hideSoftInputFromWindow(IBinder, int, ResultReceiver) :软输入窗口的状态保持不变并保持显示状态。

int SHOW_FORCED

标记为 showSoftInput(View, int)以指示用户已强制输入方法处于打开状态(例如通过长按菜单),以便在明确这样做之前不应关闭它。

int SHOW_IMPLICIT

标记为 showSoftInput(View, int)以表明这是隐式的显示输入窗口的请求,而不是用户直接请求的结果。

Public methods

void dispatchKeyEventFromInputMethod(View targetView, KeyEvent event)

提供默认实现 sendKeyEvent(KeyEvent) ,根据给定的 View和当前的焦点状态,预计 sendKeyEvent(KeyEvent)从IME发送的键盘事件分派到适当的事件目标。

void displayCompletions(View view, CompletionInfo[] completions)
InputMethodSubtype getCurrentInputMethodSubtype()

返回当前的输入法子类型。

List<InputMethodInfo> getEnabledInputMethodList()
List<InputMethodSubtype> getEnabledInputMethodSubtypeList(InputMethodInfo imi, boolean allowsImplicitlySelectedSubtypes)

返回指定输入法信息的已启用输入法子类型的列表。

List<InputMethodInfo> getInputMethodList()
InputMethodSubtype getLastInputMethodSubtype()
Map<InputMethodInfoList<InputMethodSubtype>> getShortcutInputMethodsAndSubtypes()

返回所有快捷输入法信息及其子类型的映射。

void hideSoftInputFromInputMethod(IBinder token, int flags)

关闭/隐藏输入法的软输入区域,以便用户不再看到它或可以与之交互。

boolean hideSoftInputFromWindow(IBinder windowToken, int flags)

没有结果的 hideSoftInputFromWindow(IBinder, int, ResultReceiver)同义词:请求从当前正在接受输入的窗口的上下文中隐藏软输入窗口。

boolean hideSoftInputFromWindow(IBinder windowToken, int flags, ResultReceiver resultReceiver)

请求从当前正在接受输入的窗口的上下文中隐藏软输入窗口。

void hideStatusIcon(IBinder imeToken)
boolean isAcceptingText()

如果当前提供的视图正在接受全文编辑,则返回true。

boolean isActive()

如果输入法中当前有任何视图处于活动状态,则返回true。

boolean isActive(View view)

如果给定视图是输入方法的当前活动视图,则返回true。

boolean isFullscreenMode()

允许您发现连接的输入法是否以全屏模式运行。

boolean isWatchingCursor(View view)

此方法在API级别21中已弃用。请改为使用requestCursorUpdates(int)

void restartInput(View view)

如果输入法当前连接到给定视图,请使用其新内容重新启动它。

void sendAppPrivateCommand(View view, String action, Bundle data)

使用当前的输入法调用 InputMethodSession.appPrivateCommand()

void setAdditionalInputMethodSubtypes(String imiId, InputMethodSubtype[] subtypes)

设置其他输入法子类型。

boolean setCurrentInputMethodSubtype(InputMethodSubtype subtype)

切换到当前输入法的新输入法子类型。

void setInputMethod(IBinder token, String id)

强制切换到新的输入法组件。

void setInputMethodAndSubtype(IBinder token, String id, InputMethodSubtype subtype)

强制切换到新的输入法和子类型。

boolean shouldOfferSwitchingToNextInputMethod(IBinder imeToken)

如果当前IME需要为用户提供切换到下一个输入方法的方法(例如,

void showInputMethodAndSubtypeEnabler(String imiId)

显示启用指定输入法的子类型的设置。

void showInputMethodPicker()
boolean showSoftInput(View view, int flags, ResultReceiver resultReceiver)

明确要求当前输入法的软输入区域在需要时显示给用户。

boolean showSoftInput(View view, int flags)

没有结果接收器的 showSoftInput(View, int, ResultReceiver)同义词:如果需要,明确请求显示当前输入法的软输入区域给用户。

void showSoftInputFromInputMethod(IBinder token, int flags)

显示输入法的软输入区域,以便用户看到输入法窗口并可以与之交互。

void showStatusIcon(IBinder imeToken, String packageName, int iconId)
boolean switchToLastInputMethod(IBinder imeToken)

强制切换到上次使用的输入法和子类型。

boolean switchToNextInputMethod(IBinder imeToken, boolean onlyCurrentIme)

强制切换到下一个输入法和子类型。

void toggleSoftInput(int showFlags, int hideFlags)
void toggleSoftInputFromWindow(IBinder windowToken, int showFlags, int hideFlags)

此方法切换输入法窗口显示。

void updateCursor(View view, int left, int top, int right, int bottom)

此方法在API级别21中已弃用。请改为使用updateCursorAnchorInfo(View, CursorAnchorInfo)

void updateCursorAnchorInfo(View view, CursorAnchorInfo cursorAnchorInfo)

报告组合字符串中文本插入点和/或字符的位置变化。

void updateExtractedText(View view, int token, ExtractedText text)
void updateSelection(View view, int selStart, int selEnd, int candidatesStart, int candidatesEnd)

报告当前的选择范围。

void viewClicked(View view)

当用户点击或点击文本视图时通知事件。

Inherited methods

From class java.lang.Object

Constants

HIDE_IMPLICIT_ONLY

Added in API level 3
int HIDE_IMPLICIT_ONLY

标记为 hideSoftInputFromWindow(IBinder, int)以指示软输入窗口只应在用户未明确显示的情况下隐藏。

常数值:1(0x00000001)

HIDE_NOT_ALWAYS

Added in API level 3
int HIDE_NOT_ALWAYS

标志为 hideSoftInputFromWindow(IBinder, int)表示通常应该隐藏软输入窗口,除非最初显示为 SHOW_FORCED

常量值:2(0x00000002)

RESULT_HIDDEN

Added in API level 3
int RESULT_HIDDEN

showSoftInput(View, int, ResultReceiver)hideSoftInputFromWindow(IBinder, int, ResultReceiver)ResultReceiver结果代码的 hideSoftInputFromWindow(IBinder, int, ResultReceiver) :软输入窗口的状态从显示变为隐藏。

常量值:3(0x00000003)

RESULT_SHOWN

Added in API level 3
int RESULT_SHOWN

showSoftInput(View, int, ResultReceiver)hideSoftInputFromWindow(IBinder, int, ResultReceiver)ResultReceiver结果代码 hideSoftInputFromWindow(IBinder, int, ResultReceiver) :软输入窗口的状态从隐藏状态变为显示状态。

常量值:2(0x00000002)

RESULT_UNCHANGED_HIDDEN

Added in API level 3
int RESULT_UNCHANGED_HIDDEN

标记为 showSoftInput(View, int, ResultReceiver)hideSoftInputFromWindow(IBinder, int, ResultReceiver)ResultReceiver结果代码:软输入窗口的状态保持不变并保持隐藏状态。

常数值:1(0x00000001)

RESULT_UNCHANGED_SHOWN

Added in API level 3
int RESULT_UNCHANGED_SHOWN

showSoftInput(View, int, ResultReceiver)hideSoftInputFromWindow(IBinder, int, ResultReceiver)ResultReceiver结果代码的 hideSoftInputFromWindow(IBinder, int, ResultReceiver) :软输入窗口的状态保持不变并保持显示。

常量值:0(0x00000000)

SHOW_FORCED

Added in API level 3
int SHOW_FORCED

标记为 showSoftInput(View, int)以指示用户已强制输入方法处于打开状态(例如通过长按菜单),以便在明确这样做之前不应关闭它。

常量值:2(0x00000002)

SHOW_IMPLICIT

Added in API level 3
int SHOW_IMPLICIT

标记为showSoftInput(View, int)以指示这是隐式的请求来显示输入窗口,而不是用户的直接请求的结果。 在这种情况下可能不会显示窗口。

常数值:1(0x00000001)

Public methods

dispatchKeyEventFromInputMethod

Added in API level 24
void dispatchKeyEventFromInputMethod (View targetView, 
                KeyEvent event)

提供默认实现 sendKeyEvent(KeyEvent) ,根据给定的 View和当前焦点状态,预计将从IME发送的键盘事件分派到适当的事件目标。

小心:此方法仅适用于不依赖sendKeyEvent(KeyEvent)需要实施BaseInputConnection 不要将此API用于其他任何事情。

Parameters
targetView View: the default target view. If null is specified, then this method tries to find a good event target based on the current focus state.
event KeyEvent: the key event to be dispatched.

displayCompletions

Added in API level 3
void displayCompletions (View view, 
                CompletionInfo[] completions)

Parameters
view View
completions CompletionInfo

getCurrentInputMethodSubtype

Added in API level 11
InputMethodSubtype getCurrentInputMethodSubtype ()

返回当前的输入法子类型。 这个子类型是当前输入法中的一个子类型。 当前输入法没有任何输入法子类型时,此方法返回null。

Returns
InputMethodSubtype

getEnabledInputMethodList

Added in API level 3
List<InputMethodInfo> getEnabledInputMethodList ()

Returns
List<InputMethodInfo>

getEnabledInputMethodSubtypeList

Added in API level 11
List<InputMethodSubtype> getEnabledInputMethodSubtypeList (InputMethodInfo imi, 
                boolean allowsImplicitlySelectedSubtypes)

返回指定输入法信息的已启用输入法子类型的列表。

Parameters
imi InputMethodInfo: An input method info whose subtypes list will be returned.
allowsImplicitlySelectedSubtypes boolean: A boolean flag to allow to return the implicitly selected subtypes. If an input method info doesn't have enabled subtypes, the framework will implicitly enable subtypes according to the current system language.
Returns
List<InputMethodSubtype>

getInputMethodList

Added in API level 3
List<InputMethodInfo> getInputMethodList ()

Returns
List<InputMethodInfo>

getLastInputMethodSubtype

Added in API level 14
InputMethodSubtype getLastInputMethodSubtype ()

Returns
InputMethodSubtype

getShortcutInputMethodsAndSubtypes

Added in API level 11
Map<InputMethodInfoList<InputMethodSubtype>> getShortcutInputMethodsAndSubtypes ()

返回所有快捷输入法信息及其子类型的映射。

Returns
Map<InputMethodInfoList<InputMethodSubtype>>

hideSoftInputFromInputMethod

Added in API level 3
void hideSoftInputFromInputMethod (IBinder token, 
                int flags)

关闭/隐藏输入法的软输入区域,以便用户不再看到它或可以与之交互。 这只能从当前活动的输入方法调用,由给定的令牌验证。

Parameters
token IBinder: Supplies the identifying token given to an input method when it was started, which allows it to perform this operation on itself.
flags int: Provides additional operating flags. Currently may be 0 or have the HIDE_IMPLICIT_ONLY, HIDE_NOT_ALWAYS bit set.

hideSoftInputFromWindow

Added in API level 3
boolean hideSoftInputFromWindow (IBinder windowToken, 
                int flags)

没有结果的 hideSoftInputFromWindow(IBinder, int, ResultReceiver)同义词:请求从当前正在接受输入的窗口的上下文中隐藏软输入窗口。

Parameters
windowToken IBinder: The token of the window that is making the request, as returned by View.getWindowToken().
flags int: Provides additional operating flags. Currently may be 0 or have the HIDE_IMPLICIT_ONLY bit set.
Returns
boolean

hideSoftInputFromWindow

Added in API level 3
boolean hideSoftInputFromWindow (IBinder windowToken, 
                int flags, 
                ResultReceiver resultReceiver)

请求从当前正在接受输入的窗口的上下文中隐藏软输入窗口。 这应该被称为用户执行一些事情的结果,而不是显式请求隐藏输入窗口的结果。

警告: ResultReceiver传递给此方法的实例可能是一个长寿命的对象,因为它可能不会被垃圾收集,直到所有对应的ResultReceiver对象转移到不同的进程都会被垃圾回收。 遵循一般模式来避免Android中的内存泄漏。 考虑使用WeakReference以便应用逻辑对象(如ActivityContext可以进行垃圾回收,无论ResultReceiver的生命周期ResultReceiver

Parameters
windowToken IBinder: The token of the window that is making the request, as returned by View.getWindowToken().
flags int: Provides additional operating flags. Currently may be 0 or have the HIDE_IMPLICIT_ONLY bit set.
resultReceiver ResultReceiver: If non-null, this will be called by the IME when it has processed your request to tell you what it has done. The result code you receive may be either RESULT_UNCHANGED_SHOWN, RESULT_UNCHANGED_HIDDEN, RESULT_SHOWN, or RESULT_HIDDEN.
Returns
boolean

hideStatusIcon

Added in API level 3
void hideStatusIcon (IBinder imeToken)

Parameters
imeToken IBinder

isAcceptingText

Added in API level 3
boolean isAcceptingText ()

如果当前提供的视图正在接受全文编辑,则返回true。 如果为false,则它没有输入连接,所以只能处理原始键事件。

Returns
boolean

isActive

Added in API level 3
boolean isActive ()

如果输入法中当前有任何视图处于活动状态,则返回true。

Returns
boolean

isActive

Added in API level 3
boolean isActive (View view)

如果给定视图是输入方法的当前活动视图,则返回true。

Parameters
view View
Returns
boolean

isFullscreenMode

Added in API level 3
boolean isFullscreenMode ()

允许您发现连接的输入法是否以全屏模式运行。 如果是全屏,则返回true,完全覆盖您的UI,否则返回false。

Returns
boolean

isWatchingCursor

Added in API level 3
boolean isWatchingCursor (View view)

此方法在API级别21中已弃用。
改为使用requestCursorUpdates(int)

如果当前输入方法想要在其窗口中观察输入编辑器的光标位置,则返回true。

Parameters
view View
Returns
boolean

restartInput

Added in API level 3
void restartInput (View view)

如果输入法当前连接到给定视图,请使用其新内容重新启动它。 当视图中的文本更改为正常输入方法或键输入流程之外时,例如应用程序调用TextView.setText()时,应该调用此方法。

Parameters
view View: The view whose text has changed.

sendAppPrivateCommand

Added in API level 3
void sendAppPrivateCommand (View view, 
                String action, 
                Bundle data)

使用当前的输入法调用 InputMethodSession.appPrivateCommand()

Parameters
view View: Optional View that is sending the command, or null if you want to send the command regardless of the view that is attached to the input method.
action String: Name of the command to be performed. This must be a scoped name, i.e. prefixed with a package name you own, so that different developers will not create conflicting commands.
data Bundle: Any data to include with the command.

setAdditionalInputMethodSubtypes

Added in API level 14
void setAdditionalInputMethodSubtypes (String imiId, 
                InputMethodSubtype[] subtypes)

设置其他输入法子类型。 只有与IME共享相同uid的进程可以将其他输入方法子类型添加到IME。 请注意,子类型的状态存储在系统中。 例如,启用的子类型即使在使用此方法删除之后也会被框架记住。 如果您再次重新添加相同的子类型,它们只会被启用。 例如,如果你想避免这种冲突,你可能希望通过改变其额外的值来创建一个“不同的”新的子类型,即使是相同的语言环境和模式。 不同的子类型不会受到存储的过去状态的影响。 (你可能想看看hashCode()来指代当前的实现。)

注:如果清单XML文件和 subtypes指定的其他子类型中都存在相同的子类型,则这些多个实例会自动合并为一个实例。

CAVEAT:在API Level 23及之前版本中,如果在InputMethodSubtype中指定了空的InputMethodSubtype ,则系统可能InputMethodSubtype执行任何subtypes ,从而无法删除其他子类型的最后一个条目。 如果IME在清单XML文件中静态定义一个或多subtypes类型,则可以通过在subtypes指定其中一种静态定义的子类型来解决此限制。

Parameters
imiId String: Id of InputMethodInfo which additional input method subtypes will be added to.
subtypes InputMethodSubtype: subtypes will be added as additional subtypes of the current input method.

setCurrentInputMethodSubtype

Added in API level 11
boolean setCurrentInputMethodSubtype (InputMethodSubtype subtype)

切换到当前输入法的新输入法子类型。

Parameters
subtype InputMethodSubtype: A new input method subtype to switch.
Returns
boolean true if the current subtype was successfully switched. When the specified subtype is null, this method returns false.

setInputMethod

Added in API level 3
void setInputMethod (IBinder token, 
                String id)

强制切换到新的输入法组件。 这只能从具有当前活动输入法标记的应用程序或服务中调用。

Parameters
token IBinder: Supplies the identifying token given to an input method when it was started, which allows it to perform this operation on itself.
id String: The unique identifier for the new input method to be switched to.

setInputMethodAndSubtype

Added in API level 11
void setInputMethodAndSubtype (IBinder token, 
                String id, 
                InputMethodSubtype subtype)

强制切换到新的输入法和子类型。 这只能从具有当前活动输入法标记的应用程序或服务中调用。

Parameters
token IBinder: Supplies the identifying token given to an input method when it was started, which allows it to perform this operation on itself.
id String: The unique identifier for the new input method to be switched to.
subtype InputMethodSubtype: The new subtype of the new input method to be switched to.

shouldOfferSwitchingToNextInputMethod

Added in API level 19
boolean shouldOfferSwitchingToNextInputMethod (IBinder imeToken)

如果当前IME需要为用户提供切换到下一个输入方法(例如全局密钥)的方法,则返回true。 当IME设置supportsSwitchingToNextInputMethod并且此方法返回true时,IME必须提供相应调用switchToNextInputMethod(IBinder, boolean)方法。

请注意,系统会确定最适合的下一个输入方法和子类型,以便在切换IME和子类型时提供一致的用户体验。

Parameters
imeToken IBinder: Supplies the identifying token given to an input method when it was started, which allows it to perform this operation on itself.
Returns
boolean

showInputMethodAndSubtypeEnabler

Added in API level 11
void showInputMethodAndSubtypeEnabler (String imiId)

显示启用指定输入法的子类型的设置。

Parameters
imiId String: An input method, whose subtypes settings will be shown. If imiId is null, subtypes of all input methods will be shown.

showInputMethodPicker

Added in API level 3
void showInputMethodPicker ()

showSoftInput

Added in API level 3
boolean showSoftInput (View view, 
                int flags, 
                ResultReceiver resultReceiver)

明确要求当前输入法的软输入区域在需要时显示给用户。 如果用户与您的视图进行交互,并以表示他们希望开始对其执行输入的方式,请调用此方法。

警告: ResultReceiver传递给此方法的实例可能是一个长寿命的对象,因为它可能不会被垃圾收集,直到所有对应的ResultReceiver对象转移到不同的进程都会被垃圾回收。 遵循一般模式来避免Android中的内存泄漏。 考虑使用WeakReference以便应用程序逻辑对象(如ActivityContext可以被垃圾收集,无论ResultReceiver的生命周期ResultReceiver

Parameters
view View: The currently focused view, which would like to receive soft keyboard input.
flags int: Provides additional operating flags. Currently may be 0 or have the SHOW_IMPLICIT bit set.
resultReceiver ResultReceiver: If non-null, this will be called by the IME when it has processed your request to tell you what it has done. The result code you receive may be either RESULT_UNCHANGED_SHOWN, RESULT_UNCHANGED_HIDDEN, RESULT_SHOWN, or RESULT_HIDDEN.
Returns
boolean

showSoftInput

Added in API level 3
boolean showSoftInput (View view, 
                int flags)

没有结果接收器的 showSoftInput(View, int, ResultReceiver)同义词:明确要求当前输入法的软输入区域在需要时显示给用户。

Parameters
view View: The currently focused view, which would like to receive soft keyboard input.
flags int: Provides additional operating flags. Currently may be 0 or have the SHOW_IMPLICIT bit set.
Returns
boolean

showSoftInputFromInputMethod

Added in API level 3
void showSoftInputFromInputMethod (IBinder token, 
                int flags)

显示输入法的软输入区域,以便用户看到输入法窗口并可以与之交互。 这只能从当前活动的输入方法调用,由给定的令牌验证。

Parameters
token IBinder: Supplies the identifying token given to an input method when it was started, which allows it to perform this operation on itself.
flags int: Provides additional operating flags. Currently may be 0 or have the SHOW_IMPLICIT or SHOW_FORCED bit set.

showStatusIcon

Added in API level 3
void showStatusIcon (IBinder imeToken, 
                String packageName, 
                int iconId)

Parameters
imeToken IBinder
packageName String
iconId int

switchToLastInputMethod

Added in API level 11
boolean switchToLastInputMethod (IBinder imeToken)

强制切换到上次使用的输入法和子类型。 如果最后一个输入方法没有任何子类型,框架将简单地切换到最后一个没有指定子类型的输入方法。

Parameters
imeToken IBinder: Supplies the identifying token given to an input method when it was started, which allows it to perform this operation on itself.
Returns
boolean true if the current input method and subtype was successfully switched to the last used input method and subtype.

switchToNextInputMethod

Added in API level 16
boolean switchToNextInputMethod (IBinder imeToken, 
                boolean onlyCurrentIme)

强制切换到下一个输入法和子类型。 如果除当前的IME和子类型之外没有启用IME,则不执行任何操作。

Parameters
imeToken IBinder: Supplies the identifying token given to an input method when it was started, which allows it to perform this operation on itself.
onlyCurrentIme boolean: if true, the framework will find the next subtype which belongs to the current IME
Returns
boolean true if the current input method and subtype was successfully switched to the next input method and subtype.

toggleSoftInput

Added in API level 3
void toggleSoftInput (int showFlags, 
                int hideFlags)

Parameters
showFlags int
hideFlags int

toggleSoftInputFromWindow

Added in API level 3
void toggleSoftInputFromWindow (IBinder windowToken, 
                int showFlags, 
                int hideFlags)

此方法切换输入法窗口显示。 如果输入窗口已经显示,则隐藏。 如果不是,则会显示输入窗口。

Parameters
windowToken IBinder: The token of the window that is making the request, as returned by View.getWindowToken().
showFlags int: Provides additional operating flags. May be 0 or have the SHOW_IMPLICIT, SHOW_FORCED bit set.
hideFlags int: Provides additional operating flags. May be 0 or have the HIDE_IMPLICIT_ONLY, HIDE_NOT_ALWAYS bit set.

updateCursor

Added in API level 3
void updateCursor (View view, 
                int left, 
                int top, 
                int right, 
                int bottom)

此方法在API级别21中已弃用。
改为使用updateCursorAnchorInfo(View, CursorAnchorInfo)

在窗口中报告当前的光标位置。

Parameters
view View
left int
top int
right int
bottom int

updateCursorAnchorInfo

Added in API level 21
void updateCursorAnchorInfo (View view, 
                CursorAnchorInfo cursorAnchorInfo)

报告组合字符串中文本插入点和/或字符的位置变化。

Parameters
view View
cursorAnchorInfo CursorAnchorInfo

updateExtractedText

Added in API level 3
void updateExtractedText (View view, 
                int token, 
                ExtractedText text)

Parameters
view View
token int
text ExtractedText

updateSelection

Added in API level 3
void updateSelection (View view, 
                int selStart, 
                int selEnd, 
                int candidatesStart, 
                int candidatesEnd)

报告当前的选择范围。

编辑器作者 ,只要光标在你的编辑器中移动,你就需要调用这个方法。 请记住,除此之外,每次调用initialSelEnd时,编辑器都需要始终提供initialSelStartinitialSelEnd当前光标值,这种情况在键盘出现或焦点更改为文本字段时发生, onCreateInputConnection(EditorInfo)

Parameters
view View
selStart int
selEnd int
candidatesStart int
candidatesEnd int

viewClicked

Added in API level 14
void viewClicked (View view)

当用户点击或点击文本视图时通知事件。

Parameters
view View

Hooray!