0

我通过扩展 View 类创建了一个自定义视图。单击时,我希望弹出软键盘,就像使用编辑文本一样(即打开预测文本并能够选择所有可用的输入法)。

我试过让视图扩展一个onclicklistener,当被调用时,它InputMethodManager用来显示软键盘,然后它又Onkeydown用来拦截按键。这很笨重并且不起作用,因为:

  1. 我只能在标准文本和数字输入法之间切换。没有其他输入法起作用(如果用户有一个输入法,我需要能够切换到日语输入法,就像编辑文本一样)。

  2. 没有预测文本,这对于程序来说是绝对必要的,因为它需要用户输入日文汉字。

有没有办法在标准视图和 IME 之间建立类似于编辑文本的连接?

4

1 回答 1

1

要显示预测文本,您应该设置系统可以接受的 EditorInfo 类型。像这样的东西:

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
       // TODO Auto-generated method stub
       // Set your EditorInfo type in the onCreateInputConnection
       outAttrs.actionLabel = null;
       outAttrs.inputType = InputType.TYPE_CLASS_TEXT;
       outAttrs.imeOptions = EditorInfo.IME_ACTION_NEXT;
       return new MyBaseInputConnection(this, false);
}
于 2012-06-14T06:38:56.887 回答