注意这里希望找到的是输入的是那个字符,而不是按的是那个键。
@Override
public boolean onKeyUp(int keyCode,KeyEvent event)
{
}这里的 keyCode 是按键,而不是字符,
比如:普通键盘上+ =这两个字符都在一个键上,通过 keyCode 获得的是无法区分的。我试过通过 event.getCharacters() 来获得, 但是这里我一直获得的是 null

解决方案 »

  1.   

    根据keyCode来判定不行吗? 有keyCode的列表,做判定
      

  2.   

    我问题里已经说了: keyCode 返回的是按了那个按键,
    一个按键可以对应多个字符,不同输入法可能出来的字符是不一样的。
    我希望根据用户输入的字符做一些处理。而不是根据用户是否按了某个键来做判断。
      

  3.   

    一个字符只有一个编码,不管按的什么键,系统给你的就是实际的编码,直接可以对应成字符,一个键对应两个字符,那也是要按住shift键的
      

  4.   

    WindowManager从Linux键盘驱动获取键盘事件,这里只涉及到硬件的位置。然后,利用键布局映射文件将扫描码映射为键值。键布局映射文件:
    /system/usr/keylayout和/data/usr/keylayout键字符映射:
    键字符映射位于:/system/usr/keychars和/data/usr/keychars如果没有碰底层的意思完全在上面获取输入的字符就可以的话,那打出系统自带软键盘自动提示历史记录的Log就很清楚了……
      

  5.   

    楼主我理解你意思了,我做过你这个问题,
     class MyListener extends KeyAdapter {        @Override
            public void keyPressed(KeyEvent dd) {
            if (dd.getKeyCode() == KeyEvent.VK_XXXX) {
    }
    }
      

  6.   


    ++
    shift键也是对应一个编码的啊、你同时再按其他的键, 那就是两个字符喽、与LZ的本意不符 了吧、 LZ的意思是“刚刚输入的字符是那个字符” 貌似 是按下一个键哎、
      

  7.   

    addTextChangedListener解决了我的问题, 结贴