正文
一、结构
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 额外的客户端控制选项,0或GET_EXTRACTED_TEXT_MONITOR
。
返回值
返回ExtractedText对象描述文本视窗的状态并包含提取文本的本身。
public CharSequence getSelectedText (int flags)
缺省实现是返回当前选择文本,没有选取则为空。
参数
flags 额外选项控制文本如何返回,可能为0或GET_TEXT_WITH_STYLES
。
返回值
返回当前选择文本,没有选取则为空。
public CharSequence getTextAfterCursor (int length, int flags)
缺省的实现是返回缓存中当前光标位置后给定数量的文本。
参数
length 期望的文本长度。
flags 如何返回文本的额外控制。可能为0或GET_TEXT_WITH_STYLES
。
返回值
返回光标位置后的文本,返回文本的长度可能小于n。
public CharSequence getTextBeforeCursor (int length, int flags)
缺省的实现是返回缓存中当前光标位置前给定数量的文本。
参数
length 期望的文本长度。
flags 如何返回文本的额外控制。可能为0或GET_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。
本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/582421,如需转载请自行联系原作者