2014-09-24 8 views
0

다음은 내가 에뮬레이터에서 제대로 작동하지만 장치에서 작동하지 않는 것처럼 보이는 키 이벤트를 가져 오는 데 사용하는 방법입니다.사용자가 edittext에서 공간을 누를 경우 즉각적으로 알 수있는 방법

다음은 키 이벤트를 가져 오는 데 사용하는 방법입니다. 에뮬레이터에서 제대로 작동하지만 장치에서 작동하지 않는 것 같습니다.

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    if (keyCode == KeyEvent.KEYCODE_SPACE) { 
     Log.e("onkeydown", "onkeydown"); 
    } 
    return super.onKeyDown(keyCode, event); 
} 

@Override 
public boolean dispatchKeyEvent(KeyEvent event) { 
    // TODO Auto-generated method stub 
    if (event.getKeyCode() == KeyEvent.KEYCODE_SPACE) { 
     Log.e("dispatch", "dispatch"); 
    } 
    return super.dispatchKeyEvent(event); 
} 

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    if (event.getKeyCode() == KeyEvent.KEYCODE_SPACE) { 
     Log.e("onkeyup", "onkeyup"); 
    } 
    return super.onKeyUp(keyCode, event); 
} 

답변

0

이 시도 ..

editText.setOnKeyListener(new OnKeyListener() {   
     @Override 
     public boolean onKey(View v, int key, KeyEvent event) { 
      if (event.getAction()==KeyEvent.ACTION_DOWN && key == KeyEvent.KEYCODE_ENTER) { 
       //write code when key press 
       return true; 
      } 
      return false; 
     } 
    });