Detect back event on android keyboard

У меня есть несколько намерений внутри контроллера вкладок, и для одного из них у меня есть редактируемый текст, который мне нужно точно знать, когда он имеет фокус и когда он теряет этот фокус. Я отобразил большинство событий, таких как focus listener, OnEditorActionListener и так далее, теперь моя единственная проблема, которая остается, это то, что когда у меня есть фокус, появляется мягкая клавиатура, и я хочу закрыть ее либо: 1) кнопкой done, а не кнопкой назад на телефоне (отключить кнопку назад, чтобы закрыть клавиатуру, пока клавиатура видна) 2) обнаружить событие кнопки назад, пока клавиатура видна, чтобы я мог передать фокус какому-нибудь другому элементу управления.

Я пробовал множество способов, но безуспешно, например onBackPressed, onConfigurationChanged (добавить hiddenKeyboard в манифест), key_down on activity и так далее, но безуспешно.

Кто-нибудь добился успеха в этом? Практически я хочу, чтобы, когда клавиатура видна и я нажимаю кнопку "назад" на телефоне, мой редактируемый текст терял фокус (otherControl.requestFocus -> что является относительным расположением).

10
задан Catalin 14 January 2012 в 09:30
поделиться