博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android api (82) —— InputConnection [输入法]
阅读量:5898 次
发布时间:2019-06-19

本文共 4996 字,大约阅读时间需要 16 分钟。

正文

  一、结构

public interface InputConnection

        

android.view.inputmethod.InputConnection

 

间接子类

 

  二、概述

     InputConnection接口是接收输入的应用程序与间的通讯通道。它可以完成以下功能,如读取光标周围的文本,向文本框提交文本,向应用程序提交原始按键事件。

 
的子类应实现这一接口。

 

  三、常量

  public static final int GET_EXTRACTED_TEXT_MONITOR

  标志,用在中,表示提取的文本变化时你想接收到更新。

  常量值: 1 (0x00000001)

 

  public static final int GET_TEXT_WITH_STYLES

  标志,用在中,表明返回的文本中包含样式。不设置时,你将仅接收原始文本。设置时,你将收到复合的CharSequence,包括文本和样式段。

  常量值: 1 (0x00000001)

 

  四、公共方法

  public abstract boolean beginBatchEdit ()

  通知编辑器你将开始批量编辑操作。编辑器尽量避免向你发送状态更新,直到调用为止。

 

  public abstract boolean clearMetaKeyStates (int states)

  在指定的输入连接中清除指定的元键(meta key)按下状态。

  参数

  states     清除的状态,可以是KeyEvent.getMetaState()中的一位或多位结果。

  返回值

               成功返回true,当连接无效时返回flase

 

  public abstract boolean commitCompletion (CompletionInfo text)

  提交用户的选择,选择先前向 提交的选项中的一个。其结果就像用户从实际UI中做出一样。

  参数

  text          提交的结果。

  返回值

               成功返回true,当连接无效时返回flase

 

  public abstract boolean commitText (CharSequence text, int newCursorPosition)

  向文本框提交文本并设置新的光标位置。之前设置的正编辑文字将自动删除。

  参数

  text          提交的文本。

  newCursorPosition          文本范围内新的光标位置。如果大于0,从提交文本末尾-1处计起;<= 0,提交文本开始处计起。所以值为1时,光标将定位于你刚刚插入文本之后。注意你不能光标定位于提交文本中,因为编辑器可以修改你提供的文本,所以不必将光标定位在哪。

  返回值

               成功返回true,当连接无效时返回flase

 

  public abstract boolean deleteSurroundingText (int leftLength, int rightLength)

  删除当前光标前的leftLength个字符,并删除当前光标后的rightLength个字符,不包联想输入(composing)的文字。

  参数

  leftLength       删除的当前光标之前字符个数。

  rightLength     删除的当前光标之后字符个数。

  返回值

               成功返回true,当连接无效时返回flase

 

  public abstract boolean endBatchEdit ()

  调用方法通知编辑器之前开始的批量编辑已完成。

 

  public abstract boolean finishComposingText ()

  强制结束文本编辑器,无论联想输入(composing text)是否激活。文本保持不变,移除任何与此文本的编辑样式或其他状态。光标保持不变。

 

  public abstract int getCursorCapsMode (int reqModes)

  取得当前光标位置的文本的大小写状态。参见 取得更多信息。此方法在输入连接(connection)无效(如线程冲突)或客户端等待时间过长(等待几秒返回)时可能会失败。上述情况时返回0

  参数

      reqModes       依据定义取得期望的状态。通过已定义的常数,你可以轻易地传递当前。

  返回值

               返回当前有效的大小写状态。

 

  public abstract ExtractedText getExtractedText (ExtractedTextRequest request, int flags)

  获取当前输入连接的编辑器中的当前文本,并监视是否有变化。函数返回当前文本,当文本变化时输入连接可选择性向输入法发送更新。

  此方法在输入联接无效时(如线程冲突)或客户端等待时间过长(等待几秒返回)时可能会失败。上述情况时返回null值。

  参数

  request  描述文本如何返回

  flags        控制客户端的附加选项,0

  返回值

             返回一个ExtractedText对象描述文本视窗的状态,及所包含的提取文本。

 

  public abstract CharSequence getSelectedText (int flags)

  如果有的话取得所选的文本。

  此方法在输入连接无效时(如线程冲突)或客户端等待时间过长(等待几秒返回)时可能会失败。上述情况时返回null值。

  参数

  flags        提供附加选项控制,控制文本如何返回。可为 

  返回值

               如果有的话返回当前选取文本,如果没有文本被选中返回null

 

  public abstract CharSequence getTextAfterCursor (int n, int flags)

  取得当前光标位置后的 n 个字符文本。

  此方法在输入连接无效时(如线程冲突)或客户端等待时间过长(等待几秒返回)时可能会失败。上述情况时返回null值。

  参数

  n      期望的文本长度

  flags        提供附加选项控制,控制文本如何返回。可为 

  返回值

               返回当前光标后的文本,返回的文本长度可能小于 n

 

  public abstract CharSequence getTextBeforeCursor (int n, int flags)

  取得当前光标位置前的 n 个字符文本。

  本此方法在输入连接无效(如线程冲突)或客户端等待时间过长(等待几秒返回)时可能会失败。上述情况时返回null值。

  参数

  n      期望的文本长度

  flags        提供附加选项控制,控制文本如何返回。可为 

  返回值

               返回当前光标前的文本,返回的文本长度可能小于 n

 

  public abstract boolean performContextMenuAction (int id)

  在区域中执行调用上下文菜单动作,其id可能下列之一:, 

 

  public abstract boolean performEditorAction (int editorAction)

  让编辑器执行一个它可以完成的操作。

  参数

  editorAction  必须是动作常量EditorInfo.editorType中的一个,如EditorInfo.EDITOR_ACTION_GO

  返回值

               成功返回true,如输入连接无效返回false

 

  public abstract boolean performPrivateCommand (String action, Bundle data)

  API从输入法向所连接的编辑器发送私有命令。这可用于提供仅用于特定输入法及其客户端功能的特定域(domain-specific)。注意,因为InputConnection协议是异步的,你无法取回结果或知道客户端是否懂得命令;你可能使用 EditorInfo来确定客户端是否支持某一命令。

  参数

  action      要执行的命令名称。必须是作用域名,前缀你自己的包名,这样不同的开发者就不会建立让人冲突的命令。

  data         命令中的数据

  返回值

               当命令发送后返回true(无论相关的编辑是否理解它),如输入连接无效返回false

 

  public abstract boolean reportFullscreenMode (boolean enabled)

  IME调用,通知客户端将在全屏与普通模式间切换。它在 InputMethodService的标准实现中被调用。

 

  public abstract boolean sendKeyEvent (KeyEvent event)

  向当前输入连接所附着的进程发送按键事件。事件像普通按键事件一样由当前焦点,通常是提供InputConnection的视图。但由于协议的异步性这一点并不总是这样,焦点可能在事件收到时发生改变。

本方法可用于向应用程序发送按键事件。如屏幕键盘可以用这一方法模拟硬件键盘。标准键盘有三种:数字(12键),预测键盘(20键)和字母(QWERTY)。你可以通过事件的设备码(device id)确定键盘类型。

在你向本API发送的所有按键事件中,你可能希望设置标志,但这一标志不可设置。

  参数

  event       按键事件

  返回值

               成功返回true,当输入连接无效返回false

         参见

             

             

             

             

 

  public abstract boolean setComposingRegion (int start, int end)

  将特定区域设为正在编辑文本。以前设置的正在编辑文本自动移除。文本使用默认正在编辑文本样式。(审核注:”composing text”的翻译还需要后期用例子来推测其含义。)

  参数

  start        正在编辑文本开始的位置

  end          正在编辑文本结束的位置。

  返回值

               成功返回true,当输入联接无效时返回false

 

  public abstract boolean setComposingText (CharSequence text, int newCursorPosition)

  将当前的光标旁正在联想文本(composing text)替代为给定文本,并设置新光标位置。以前设置的正在编辑文本自动移除。(译者注:

InputConnection ic = getCurrentInputConnection();

ic.setComposingText("Composi", 1);

 

    

  

  参数

  text          如必要正在编辑文本有样式。如文本没有附带样式对象,正在编辑文本将应用默认样式。见如何在文本上附加样式{#link android.text.Spanned}{#link android.text.SpannableString}{#link   android.text.SpannableStringBuilder}是两种界面实现方式。

  newCursorPosition          文本范围内新的光标位置。如果大于0,从提交文本末尾-1处计起;<= 0,提交文本开始处计起。所以值为1时,光标将定位于你刚刚插入文本之后。注意你不能光标定位于提交文本中,因为编辑器可以修改你提供的文本,所以不必将光标定位在哪。

  返回值

               成功返回true,当输入联接无效时返回false

 

  public abstract boolean setSelection (int start, int end)

  设置文本编辑器的选定文本。设置到当前光标时,开始与结束取相同值。

  返回值

               成功返回true,当输入联接无效时返回false

本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582429,如需转载请自行联系原作者

 

你可能感兴趣的文章
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
gitlab 完整部署实例
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
struts中的xwork源码下载地址
查看>>
我的友情链接
查看>>
PHP 程序员的技术成长规划
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
js replace,正则截取字符串内容
查看>>
javascript继承方式详解
查看>>
lnmp环境搭建
查看>>
自定义session扫描器精确控制session销毁时间--学习笔记
查看>>
仿射变换
查看>>
视频直播点播nginx-rtmp开发手册中文版
查看>>
PHP队列的实现
查看>>
单点登录加验证码例子
查看>>
[T-SQL]从变量与数据类型说起
查看>>
occActiveX - ActiveX with OpenCASCADE
查看>>
BeanUtils\DBUtils
查看>>