我的应用程序只是一个表面视图。我所做的就是在surfaceview上绘制东西等等。所以我想要的一个功能是,如果用户触摸surfaceview的一角,它会显示键盘,然后他们可以键入它。请注意,我的应用中没有任何EditTexts或Textbox。如何调用键盘弹出,然后如何获取用户按下的所有键?我不想要钥匙,我只想要他们输入的字符串。我如何实现这个目标?
答案 0 :(得分:0)
这不是一项微不足道的任务。
首先,您需要覆盖方法onCreateInputConnection()
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
return new MyInputConnection(this, surfaceView, false);
}
然后你必须实现这个输入连接类,派生自BaseInputConnection。
class MyInputConnection extends BaseInputConnection{
private MyActivity activity;
public MyInputConnection(MyActivity activity, View targetView, boolean fullEditor)
{
super( targetView, fullEditor );
mActivity = activity;
}
public boolean commitText(CharSequence text, int newCursorPosition){
myActivity.drawText((String) text);
return true;
}
您需要覆盖更多方法(请参阅参考资料),但首先要关注commitText()。 DrawText()是一种在表面上呈现文本的方法,您必须提供适合您需求的实现。