温故而知新,先看看网上已有的相关材料。
http://android-developers.blogspot.com/2009/04/creating-input-method.html
这篇文章的基本点有几个。
第一、两个view 对象:input view和canidates view。
input view 一般就是一个键盘,canidates view就是在键盘上面根据用户输入,给用户选择提示的。
第二、两种向应用送文本的方法。一个是send key, 一个是直接改变游标附近的值。一般的输入法都是用第二种居多。
其中重点中的重点是:链接应用与输入法的对象是叫InputConnection的接口。输入法不直接与应用的视图进行通信,而是通过InputConnection这座桥梁。输入法要获取要修改的字符串,要获取游标的信息是通过它,输入法要改变游标附近的字符也是通过这个桥梁。
在sdk里面有一个叫SoftKeyBoard,是一个比较简单的输入法的实现,非常有用。然后sdk源代码中的TextView,EditableInputConnection也非常实用。
总结:
1、要实现一个输入法:定制自己的input view和canidates view这两个界面,调用inputConnection接口来送出文本。
2、要实现一个能够与应用输入法的视,你需要在视图中实现onCreateInputConnection.然后你要为自己的视图定制合适的InputConnection实现。主要实现里面的commitText,getEditable等方法。
http://android-developers.blogspot.com/2009/04/creating-input-method.html
这篇文章的基本点有几个。
第一、两个view 对象:input view和canidates view。
input view 一般就是一个键盘,canidates view就是在键盘上面根据用户输入,给用户选择提示的。
第二、两种向应用送文本的方法。一个是send key, 一个是直接改变游标附近的值。一般的输入法都是用第二种居多。
其中重点中的重点是:链接应用与输入法的对象是叫InputConnection的接口。输入法不直接与应用的视图进行通信,而是通过InputConnection这座桥梁。输入法要获取要修改的字符串,要获取游标的信息是通过它,输入法要改变游标附近的字符也是通过这个桥梁。
在sdk里面有一个叫SoftKeyBoard,是一个比较简单的输入法的实现,非常有用。然后sdk源代码中的TextView,EditableInputConnection也非常实用。
总结:
1、要实现一个输入法:定制自己的input view和canidates view这两个界面,调用inputConnection接口来送出文本。
2、要实现一个能够与应用输入法的视,你需要在视图中实现onCreateInputConnection.然后你要为自己的视图定制合适的InputConnection实现。主要实现里面的commitText,getEditable等方法。