2012-01-18 106 views
0

我有软键盘和表面视图的问题。当我输入软键盘时,我想通过onDraw方法在surfaceview上写文本。我得到这个事件,但我无法得到相应的角色来绘制。我看到很多帖子,并且在某个人看来,getNumber()应该使用相应的字符进行响应,但它会失败并显示错误代码。 这里是5月安其方法:如何在SurfaceView上绘制SoftKeyboard keyCodes?

public boolean onKey(View v, int keyCode, KeyEvent event) { 
     Log.d(LOGTAG, "keyCode: "+keyCode+" - " + event.getNumber()+" Un: "+event.getUnicodeChar()); 
     this.charToDraw = ""+event.getNumber(); 
     this.forceOnDraw(); 
     return false; 
    } 

的DDMS表明这一点:

01-18 16:35:27.440: DEBUG/xxxxxxx(6227): keyCode: 47 - �� Un: 115 
01-18 16:35:27.440: DEBUG/xxxxxxx(6227): onDraw: WRITING:�� 

我也尝试使用:

char keyCode = (char)keyCode; 
String keyCode = "" + keyCode; 

,但得到了同样的结果。

我需要将keyCode转换为字符串以显示surfaceview画布的drawString。

回答

1

尝试

event.getDisplayLabel() 

您的安其()方法中。