2011-02-17 1 views
1

검색 루틴을 시작하려면 Enter 키가 필요한지 확인해야합니다. 일부 키보드를 제외한 모든 작품에는 ENTER 버튼 대신 SEND 버튼이있는 것 같습니다. 이 버튼을 누르면 코드가 덤프됩니다. 아래에 작은 샘플이 있습니다. 어떤 아이디어?android SEND 키가 충돌 함

tx1.setOnEditorActionListener (new OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     System.out.println("Key: " + event.getKeyCode()); //BLOWS UP HERE 
     if (event.getAction() == KeyEvent.ACTION_DOWN) { 
      if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 
       // ... 
      } 
     } 
    } 
} 
+1

Eclipse에서 'adb logcat', DDMS 또는 DDMS 퍼스펙티브를 사용하여 LogCat을 검사하고 "코드 덤프"에 대한 스택 추적을 확인하십시오. – CommonsWare

+0

붙여 넣기 코드를 포맷하는데 약간의 노력을하십시오. 나는 훨씬 더 쉽게 도와 준다! – WarrenFaith

+0

@CommonsWare : 코드 덤프가 표시된 줄에 있습니다. 널 포인터.하지만이 문제를 해결하는 방법을 모르겠습니다. –

답변

2

이 경우 이벤트가 null이라고 생각합니다. onEditorActionListener는 소프트 키 보드에서 보내기 작업을 감지하기 위해 실제로이 작업을 수행해야합니다.

onEditorAction(TextView v, int actionId, KeyEvent event){ 
    if(actionId == EditorInfo.IME_ACTION_SEND){ 
     send(); 
    } 
    return false;// so the softkeyboard will still close after pressing 'send' 
} 
+0

나는 입력 키를 찾고 있던 송신 키를 정말 엉망으로 만들고 싶지 않습니다. 그러나 보내기 키가 문제가 될 수있는 키보드를 닫으면 –

+0

이 문제가 해결되었습니다. SEND 키를 확인하고 작업을 수행 한 기능을 실행했습니다. 그런 다음 당신이 생각한대로 NULL 일 것임을 확인했습니다. 도와 주셔서 감사합니다! –

+0

보내기 키를 두 번 확인하지 않으려면 IME 옵션을 다시 확인하여 입력하거나 돌아갈 수 있습니다. – schwiz