2011-03-04 2 views
2

내 애플리케이션에서 취소 할 수없는 대화 상자가 표시되지만 사용자가 검색 버튼을 누르면 취소됩니다. onSearchRequested 및 onKeyDown을 재정의하려했지만 도움이되지 않습니다. 어떠한 제안? KEYCODE_SEARCH이 (가 발생하지 않은 것처럼) 키를 눌러 그 거짓 단지 블록을 반환검색 버튼에서 취소 할 수없는 대화 상자가 닫힙니다.

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 

    char c = (char) event.getUnicodeChar(); 

    if (c == KeyEvent.KEYCODE_SEARCH) { 
     return false; 
    } else { 
     return super.onKeyDown(keyCode, event); 
    } 
} 

false를 반환하는

답변

3

또한이 문제를 보았고 Jamasan의 해결책이 나에게 적합하지 않았습니다. 내가 대신 (대화 확장) 내 사용자 지정 대화 상자 클래스에 다음 코드를 추가 :

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_SEARCH) { 
     return true; 
    } else { 
     return false; 
    } 
} 

keyCode가와 KeyEvent.KEYCODE_SEARCH은 모두 INT 있습니다. onKeyDown에 대한 문서는 다음과 같습니다 :

이벤트를 처리 한 경우 true를 반환합니다. 다음 수신자가 이벤트를 으로 처리하도록하려면 false를 반환하십시오.

나를 위해 일합니다.

0

재정 활동의 onKeyDown에 이벤트 및 확인. 그렇지 않으면 super.onKeyDown (..)을 실행하면 정기적으로 처리됩니다.

행운을 비네.

관련 문제