18

如何转换keycodecharstring??

这是示例代码:

public boolean onKey(View v, int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    //Log.d("EditText", "It's Working...!" + event.getAction());
    if (event.getAction() == 0) {
        switch (v.getId()) {
        case R.id.editText1:
            Log.d("EditText", "In editText1");
            if (text1.length() == 3)
            {
                text2.setText();
                text2.requestFocus();

            }
            break;

        case R.id.editText2:
            Log.d("EditText", "In editText2");
            if (text2.length() == 0)
                text1.requestFocus();
            break;
        }
    }

    return false;
}
4

7 回答 7

53
char unicodeChar = (char)event.getUnicodeChar();
于 2012-02-11T00:35:37.913 回答
6

使用event.getNumber().

于 2011-07-04T12:28:33.600 回答
3

如果您没有 KeyEvent 对象,您可以在 keycode 上使用它:

public void onKey(int primaryCode, int[] keyCodes) {
     char c = Character.toChars(primaryCode)[0];
}
于 2013-11-27T22:55:13.390 回答
2

Tod 的答案几乎是完整的,但是当您想使用此事件代码设置编辑文本的文本时,您应该添加一些东西:

sample_et.setText((char)event.getUnicodeChar()+"");
于 2018-06-26T14:10:53.317 回答
0

如果你想将一个键从一个控件发送到另一个(例如,从RecylerViewEditText内部),你可以使用这个

editText.dispatchKeyEvent(KeyEvent(0, 0, KeyEvent.ACTION_DOWN, keyCode, 0))
editText.dispatchKeyEvent(KeyEvent(0, 0, KeyEvent.ACTION_UP, keyCode, 0))
于 2021-07-01T12:45:44.080 回答
-3

利用

String.fromCharCode();

String.fromCharCode(65,66,67)返回ABC

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode

于 2014-06-24T04:21:17.660 回答
-3

尝试这个..

String s="";

@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
    EditText t=(EditText)v;
    s=t.getText();  
    return false;
}
于 2012-12-06T07:51:27.833 回答