我正在制作一个我希望包含在应用中的自定义键盘。我已经知道了how to make a system keyboard。我不想这样做,因为它需要用户安装。
每当用户按下键盘上的某个键时,它应该将关键文本发送给当前具有焦点的EditText
(如果有的话)。
编辑器需要与IME交互,通过接收命令 这个
InputConnection
接口,并通过发送命令InputMethodManager
。
如下图所示(View
为EditText
)。
这听起来好像我应该使用输入连接与EditText
进行通信。所以我的问题是,我的自定义键盘视图如何获得对当前焦点EditText
的输入连接的引用。或者它是如何开始这种联系的?
相关
答案 0 :(得分:2)
正如@pskink在评论中提到的,你可以使用
InputConnection ic = editText.onCreateInputConnection(new EditorInfo());
获取对EditText
输入连接的引用。
当EditText
通过添加监听器获得焦点时,可以将其移交给自定义键盘。
// get the input connection from the currently focused edit text
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
InputConnection ic = editText.onCreateInputConnection(new EditorInfo());
keyboard.setInputConnection(ic); // custom keyboard method
}
}
});
答案 1 :(得分:0)
我想你是说
InputConnection ic = v.onCreateInputConnection(new EditorInfo());