[英]Android show keyboard and register keys
我有一個只是Surfaceview的應用程序。 我要做的就是在surfaceview上繪制東西,什么都沒有。 所以我想要的一個功能是,如果用戶觸摸了Surfaceview的一個角,它將顯示鍵盤,然后他們可以在其中鍵入內容。 請注意,我的應用程序中任何地方都沒有EditTexts或Textboxes。 如何調用鍵盤彈出窗口,然后如何獲取用戶按下的所有鍵? 我不需要鍵,我只想要它們鍵入的字符串。 我該如何做到這一點?
這不是一件簡單的任務。
首先,您需要重寫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()是一種在表面上渲染文本的方法,您必須提出一種適合您需要的實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.