Android的文本和输入---创建输入法(三)
2012-12-24 20:25
423 查看
把文本发送给应用程序
当用户用你的IME输入文本时,你可以通过发送单独的按键事件或应用程序的文本域中光标附近编辑文本的方式把文本发送给应用程序。在这两种情况中,你要使用一个InputConnection对象来发送文本。调用InputMethodService.getCurrentInputConnection()方法来获得这个实例。
在光标附近编辑文本
当处理文本域中既存的的文本时,在BaseInputConnection类中有一些非常有用的方法:
getTextBeforeCursor()
返回一个CharSequence类型的字符串,它包含了光标当前位置之前所有的要求的字符。
getTextAfterCursor()
返回一个CharSequence类型的字符串,它包含了光标当前位置之后所有的要求的字符。
deleteSurroundingText()
删除当前光标位置所选择的指定数量的字符。
commitText()
把一个CharSequence类型的字符串提交给文本域,并设置新的光标位置。
例如,以下代码演示了如何把文本Fell替换成Hello!:
InputConnection ic = getCurrentInputConnection();
ic.deleteSurroundingText(4, 0);
ic.commitText("Hello", 1);
ic.commitText("!", 1);
在提交之前编排文本
如果你的IME进行文本预选或需要多个步骤才能完成文字的编排,那么你可以在文本域中显示进度,直到用户提交文字,就可以用完整的文本来代替输入部分的文本。当你把文本传递一个InputConnection类的setComposingText()方法时,你可以通过添加一个“范围”来对文本进行特殊的处理。
以下代码显示了文本域中字符的显示过程:
InputConnection ic = getCurrentInputConnection();
ic.setComposingText("Composi", 1);
...
ic.setComposingText("Composin", 1);
...
ic.commitText("Composing ", 1);
以下截图显示了文本是如何向用户显示的:
图3.提交之前的文本编排。
当用户用你的IME输入文本时,你可以通过发送单独的按键事件或应用程序的文本域中光标附近编辑文本的方式把文本发送给应用程序。在这两种情况中,你要使用一个InputConnection对象来发送文本。调用InputMethodService.getCurrentInputConnection()方法来获得这个实例。
在光标附近编辑文本
当处理文本域中既存的的文本时,在BaseInputConnection类中有一些非常有用的方法:
getTextBeforeCursor()
返回一个CharSequence类型的字符串,它包含了光标当前位置之前所有的要求的字符。
getTextAfterCursor()
返回一个CharSequence类型的字符串,它包含了光标当前位置之后所有的要求的字符。
deleteSurroundingText()
删除当前光标位置所选择的指定数量的字符。
commitText()
把一个CharSequence类型的字符串提交给文本域,并设置新的光标位置。
例如,以下代码演示了如何把文本Fell替换成Hello!:
InputConnection ic = getCurrentInputConnection();
ic.deleteSurroundingText(4, 0);
ic.commitText("Hello", 1);
ic.commitText("!", 1);
在提交之前编排文本
如果你的IME进行文本预选或需要多个步骤才能完成文字的编排,那么你可以在文本域中显示进度,直到用户提交文字,就可以用完整的文本来代替输入部分的文本。当你把文本传递一个InputConnection类的setComposingText()方法时,你可以通过添加一个“范围”来对文本进行特殊的处理。
以下代码显示了文本域中字符的显示过程:
InputConnection ic = getCurrentInputConnection();
ic.setComposingText("Composi", 1);
...
ic.setComposingText("Composin", 1);
...
ic.commitText("Composing ", 1);
以下截图显示了文本是如何向用户显示的:
图3.提交之前的文本编排。
相关文章推荐
- Android的文本和输入---创建输入法(二)
- Android的文本和输入之创建输入法教程
- Android的文本和输入---创建输入法(四)
- Android的文本和输入---创建输入法(一)
- Android的文本和输入---创建输入法
- Android的文本和输入---创建输入法(五)
- Android的文本和输入---创建输入法(二)
- android开发中有EditText,当输入时输入法会把底部的导航栏顶上去。如何解决?
- Android调用输入法软键盘,返回输入的内容
- Android的文本和输入---拼写检查器(二)
- Android控制文本输入框最多输入10个字符长度
- Android中监听EditText文本输入
- Android中调用手机自带输入法比如三星s5830i,仅限制输入浮点数,崩溃的原因
- Android 文本输入框 获取焦点和设置光标到末尾
- android文本限制输入行数,多余部分显示省略号
- Android的文本和输入---拼写检查器
- Android之自动文本输入识别提示
- Android调用输入法软键盘,返回输入的内容
- Android实现EditText文本的输入,通过点击按钮,获取输入的内容
- Android TextInputLayout,打造 Material Design 风格的文本输入框