2011-10-21 2 views
0

Android에서 키 조합을 감지하고 싶습니다. 사용자가 MENU + S를 누르면 내 응용 프로그램의 검색 기능을 열고 싶습니다.Android에서 키 조합/더블 탭 감지

좋은 방법이 있습니까?

편집 : 단추를 만들 수 있음을 알고 있지만 화면 공간을 전혀 차지하고 싶지는 않습니다. 그래서 키 조합이 가장 좋은 방법 일 것이라고 생각했습니다. 단지 그것을 탐지 할 수있는 좋은 방법이 없다고 생각합니다. 안드로이드는 내가 사용할 수있는 어떤 종류의 API를 제공합니까?

편집 : Stephan은 나를 흥미롭게 한이 흥미로운 아이디어를 지적했다.

소프트 키보드는 키 콤보를 사용할 수 있지만 은 특별히 그렇지 않으므로 그만큼 더 좋습니다. 인스턴스의 경우 한 문자를 대문자로 사용하려면 Android에서 문자와 동시에 Shift 키를 누르지 말고 Shift 키 을 한 번 누른 다음 문자 (그리고 시프트 키 )를 자동으로 누릅니다. 압박받지 않게 됨). 개인적으로 그 유용성을 발견 손가락이 동시에 하나 이상의 좌표를 좌표로 어렵게 전화로 환상적으로 잘 작동하는 흐름.

그러나 불행히도 키보드 동작을 유지하기 위해이 디자인을 사용할 수 없습니다.

EDIT : 콤보보다 감지하기가 쉽지만 더블 탭을 할 수도 있지만 다시 키 더블 탭을 감지하는 방법은 없습니다. Stephan에게 다시 한 번 멋진 아이디어를 보내 주셔서 감사합니다.

답변

0

정말 좋은 생각입니까? 검색 버튼을 재정의하는 것이 더 쉽지 않을까요?

개인적으로 사용하고있는 실제 Android 휴대 전화를 갖고 계십니까? 일부 안드로이드 개발자는 여전히 iPhone을 주로 사용하고 있으며 직장에서 테스트 할 수있는 전화 외에 Android 인터페이스에 익숙하지 않다는 것을 알고 있습니다.

소프트 키보드는 키 콤보를 사용할 수 있지만 특히 그렇지는 않으며 그로 인해 훨씬 ​​더 좋습니다. 예를 들어 한 글자를 대문자로 사용하려면 안드로이드에서 글자와 동시에 Shift 키를 누르지 말고 Shift 키를 한 번 누른 다음 글자를 누르십시오 (Shift 키를 누르면 자동으로 누르지 않습니다). 필자는 개인적으로 사용성 흐름이 동시에 하나 이상의 손가락을 조정하기 어려운 전화기에서 훌륭하게 작동하는 것을 발견합니다.

+0

음, 키 조합을 사용하여 원하는대로 할 수 있습니다. –

+0

글쎄, 나는 안드로이드 폰을 소유하고있다. 그것은 당신이 지적한 흥미로운 사실이다. 내 디자인을 다시 생각해 볼 것이지만, 한편으로는 키 조합을 감지하는 방법에 대한 아이디어를 알려 주시면 감사하겠습니다. 더 많은 옵션이있는 것을 선호합니다. –

+0

현재 위치는 중요하지 않습니다. 보시다시피 키 조합을 사용하려는 이유 중 하나는 누르는 경우 모든 단추를 정상적으로 작동시키기 때문입니다. 그러나 조합을 눌렀을 때만 특별한 것을 원합니다. SHIFT 키는 특별히 고안된 키이므로 안드로이드 키를 누르면 CAPS 상태가 토글됩니다. 하지만 내 고유 키는 가질 수 없습니다.사용자가 메뉴 버튼을 누르면, 그에게 메뉴를 보여주고 싶습니다. 그래서 나는 콤보와 함께 가야만한다고 생각합니다. –

0

글쎄, 나는 또한 검색 버튼에 동의 안드로이드의 나쁜 디자인입니다. 다음과 같이 onKeyDown 메서드를 사용할 수 있습니다.

if (keyCode == KeyEvent.KEYCODE_MENU) { 
    // start a thread and let it stop in a while 
} else if(keyCode == YOURDEFINECODE){ 
    // if the thread has been running do what you want 
} else { 
    // stop the thread 
} 
+0

미안하지만 나는 당신을 얻지 못했습니다. 좀 더 설명해 주시겠습니까? 특히'keyCode == YOURDEFINECODE'의 의미. –

+0

활동이나 위젯에서 수행 할 날씨를 모르겠습니다. 내 아이디어는 사용자가 메뉴 버튼을 클릭하면 스레드를 시작하는 것입니다, 당신은 onKeyDown 메서드에서 이것을 처리 할 수 ​​있습니다. 그것은 당신의 다음 행동을 기다리는 데 5 초 이상 동안 잠시 존재할 것이며, 그 후에는 사라질 것입니다. 이 시간 동안 사용자가 정의한 키를 클릭하면 원하는 활동으로 건너 뛸 수 있고, 다른 키를 클릭하면 단순히 스레드를 중지 할 수 있습니다. – Hubert