BaseInputConnection

译者署名:六必治

译者链接:http://www.cnblogs.com/zcmky/

版本:Android 2.3 r1

 

结构

继承关系

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全屏绘制

         全屏手写输入的笔迹获取

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