前言

  本章内容是android.view.inputmethod.BaseInputConnection,为输入法相关章节,版本为Android 2.3 r1,翻译来自"六必治",欢迎大家访问他的博客:http://www.cnblogs.com/zcmky/,再次感谢"六必治" !期待你一起参与Android API 的中文翻译,联系我over140@gmail.com。

声明

  欢迎转载,但请保留文章原始出处:)

    博客园:http://www.cnblogs.com/

    Android中文翻译组:http://goo.gl/6vJQl

正文

  一、结构

public class BaseInputConnection extends Object implements InputConnection

java.lang.Object

android.view.inputmethod.BaseInputConnection

  二、概述

    InputConnection接口实现的基类,注意大多数行为提供的是Editable联接。本类的实现一定要实现getEditable()提供对它们自己的可编辑对象的访问。

  三、公共方法

public boolean beginBatchEdit ()

缺省实现什么也不做。

public boolean clearMetaKeyStates (int states)

缺省实现用MetaKeyKeyListener.clearMetaKeyState(long, int)来清除状态。

参数

states 要清除的状态,每个KeyEvent.getMetaState()中可能是1或个状态。

返回值

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

public boolean commitCompletion (CompletionInfo text)

缺省实现什么也不做。

参数

text 提交的完成。

返回值

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

public boolean commitText (CharSequence text, int newCursorPosition)

缺省实现将用给出的文本替代正在构建的文本。另外在虚拟状态时,将发送包含新文本的按键事件并清空可编辑控件的缓存。

参数

text 提交的文本。

newCursorPosition 文本范围内新光标位置。如> 0,从文本未尾-1起计算;如<= 0,从文本起始处计算。所以是1时总是在刚插入文本之后。注意这意味着你不能将位置定义在文本中,因为编辑器可以修改你提交的文本,所以无必要将光标定位在文本中。

返回值

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

public boolean deleteSurroundingText (int leftLength, int rightLength)

缺省实现将删除当前光标位置附近的可编辑文本。

参数

leftLength 删除文本在当前光标位置前的字符数

rightLength 删除文本在当前光标位置后的字符数。

返回值

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

public boolean endBatchEdit ()

缺省实现什么也不做。

public boolean finishComposingText ()

缺省实现将用给定的文本替代正在构建的文本。另外在虚拟状态时,将发送包含新文本的按键事件并清空可编辑控件的缓存。

public static int getComposingSpanEnd (Spannable text)

public static int getComposingSpanStart (Spannable text)

public int getCursorCapsMode (int reqModes)

缺省实现时,由TextUtils.getCapsMode返回当前可编辑文本的选定文本的光标大小写状态,虚拟状态时总是返回0

参数

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

返回值

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

public Editable getEditable ()

返回编辑操作的目标。缺省的实现是返回自己的虚拟可编辑控件,子类须重载一个可编辑控件并提供给它自己。

public ExtractedText getExtractedText (ExtractedTextRequest request, int flags)

缺省实现总是返回空。

参数

request 描述如何返回文本。

flags 额外的客户端控制选项,0GET_EXTRACTED_TEXT_MONITOR

返回值

返回ExtractedText对象描述文本视窗的状态并包含提取文本的本身。

public CharSequence getSelectedText (int flags)

缺省实现是返回当前选择文本,没有选取则为空。

参数

flags 额外选项控制文本如何返回,可能为0GET_TEXT_WITH_STYLES

返回值

返回当前选择文本,没有选取则为空。

public CharSequence getTextAfterCursor (int length, int flags)

缺省的实现是返回缓存中当前光标位置后给定数量的文本。

参数

length 期望的文本长度。

flags 如何返回文本的额外控制。可能为0GET_TEXT_WITH_STYLES

返回值

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

public CharSequence getTextBeforeCursor (int length, int flags)

缺省的实现是返回缓存中当前光标位置前给定数量的文本。

参数

length 期望的文本长度。

flags 如何返回文本的额外控制。可能为0GET_TEXT_WITH_STYLES

返回值

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

public boolean performContextMenuAction (int id)

缺省实现是什么也不做。

public boolean performEditorAction (int actionCode)

缺省实现将其发送至返回键(enter key)

参数

actionCode 必须是EditorInfo.editorType中一常量之一,如EditorInfo.EDITOR_ACTION_GO

返回值

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

public boolean performPrivateCommand (String action, Bundle data)

缺省实现是什么也不做。

参数

action 执行的命令名称。必须是作用域的名称(译者注:带包名,如”com.test.Command”),如以你自己的包名称前缀,这样不同的开发者就不会创建产生冲突的命令。

data 命令中的数据。

返回值

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

public static final void removeComposingSpans (Spannable text)

public boolean reportFullscreenMode (boolean enabled)

以当前的全屏模式更新InputMethodManager

public boolean sendKeyEvent (KeyEvent event)

提供窗口附属输入连接视窗的发送按键事件的标准实现。

参数

event 按键事件。

返回值

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

public boolean setComposingRegion (int start, int end)

将特定区域标记为正在构建文本。任何以前设置的正在构建文本自动清除。正在构建文本应用缺省样式。

参数

start 文本中正在构建区域开始位置。

end 文本中正在构建区域结束位置。

返回值

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

public static void setComposingSpans (Spannable text)

public boolean setComposingText (CharSequence text, int newCursorPosition).

缺省实现是将给定文本置入可编辑文本,替代任何正在构建文本。新文本标记为正在构建文本并应用构建样式。

参数

text 正在构建文本,如必要应用样式。如文本无附属样式,将正在构建文本应用缺省样式。参见how to attach style object to the text{#link android.text.SpannableString} {#link android.text.SpannableStringBuilder}是实现的接口。

newCursorPosition 文本范围内新光标位置。如> 0,从文本未尾-1起计算;如<= 0,从文本起始处计算。所以是1时总是在刚插入文本之后。注意这意味着你不能将位置定义在文本中,因为编辑器可以修改你提交的文本,所以无必要将光标定位在文本中。

返回值

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

public boolean setSelection (int start, int end)

缺省实现是在当前可编辑文本中改变选取的位置。

返回值

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

  四、补充

     文章链接

Android全屏绘制

全屏手写输入的笔迹获取

手写输入法实现过程中的问题

更多相关文章

  1. 识别链接,可以点击TextView
  2. Android文本输入框EditText属性和方法说明
  3. Android中关于startActivityForResult()在activity不同启动模式
  4. TextView的跑马灯效果,还有焦点问题
  5. android文本限制输入行数,多余部分显示省略号
  6. Android中级联列表ExpandableListView使用
  7. Android(安卓)编程下 Touch 事件的分发和消费机制理解
  8. 浅析Android事件分发机制
  9. EditText属性详解

随机推荐

  1. [Android] 仿照 Last App Switcher 写的
  2. 工作方向转变—— React Native For Andr
  3. Android(安卓)Ashmem相关介绍
  4. Android仿微信添加联系人列表,内附有截图
  5. Android(安卓)根证书管理与证书验证
  6. Android应用程序用户界面(十二)菜单
  7. 【Android】ColorPickerDialog 自定义颜
  8. [Android(安卓)数据通信] android cmwap
  9. [Android]日志分类(Amdroid Studio)
  10. Unity3D中 Android插件findviewbyid返回n