2013-06-20 102 views
7

我在我的活动中实现了dispatchKeyEvent来听取按下的Enter键。 问题是,当我点击输入,它会调用我的方法两次?我怎样才能解决这个问题 ? 谢谢,祝你有个美好的一天!dispatchKeyEvent调用方法两次

@Override 
public boolean dispatchKeyEvent(KeyEvent e) { 
if (e.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 

       enter(); 
     return true; 
    } 
    return super.dispatchKeyEvent(e); 
}; 
+1

尝试KeyEvent.getAction() – pskink

回答

15

固定它,这样做: 起初我是做ACTION_DOWN但被触发我的一个老问题。

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 
    if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 
     if (event.getAction() == KeyEvent.ACTION_UP){ 

     enter(); 

      return true; 
    }} 
    return super.dispatchKeyEvent(event); 
};