#android #overriding #onkeydown #implements #supertype
#Android #переопределение #onkeydown #реализует #супертип
Вопрос:
Я пытаюсь создать экран блокировки в приложении, чтобы при запросе пользователя (удаленно) телефон блокировался с помощью предустановленного пароля.
Я пытаюсь использовать метод onKeyPreIme, потому что я читал, что onKeyDown() и другие связанные методы иногда будут использоваться ПОСЛЕ того, как система Android выполнит действие по умолчанию (возможно, редко, но возможно).
Я сделал свой код расширяющим View вместо Activity, и это позволило onKeyPreIme работать, но ни один из других кодов не будет работать в этот момент, потому что для этого мне нужно было расширить Activity. Я также пытался реализовать KeyEvent.Обратный вызов, но это ничего не меняет. Я проверил свои настройки в Eclipse, и он разрабатывается на основе java 1.6, и мой плагин для Android полностью обновлен, как и мой Eclipse. Eclipse, который у меня есть, — это Eclipse IDE для разработчиков Java, а также Eclipse IDE для разработчиков Java EE и Eclipse Classic. Интересно, будет ли какой-либо из них отличаться?
Изначально я создавал этот проект в Eclipse, поэтому он не был импортирован откуда-либо еще, поэтому я знаю, что это не проблема.
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
//do my work here
return super.onKeyPreIme(keyCode, event);
}
Я пытался не переопределять, но, конечно, это ничего не дает, и я также получаю «Метод onKeyPreIme(int, KeyEvent) не определен для типа Activity» для ‘return super.onKeyPreIme»
Я в недоумении, что делать, чтобы заставить onKeyPreIme работать.
Если я не смогу заставить его работать, будут ли какие-либо недостатки в использовании onKeyDown (и onKeyUp и onKeyLongPress) вместо этого?.
У кого-нибудь есть идеи о том, как заставить OnKeyPreIme работать должным образом?
Ответ №1:
OnKeyPreIme — это функция просмотра, поэтому вы должны реализовать свой пользовательский компонент просмотра и переопределить там функцию.
Комментарии:
1. Можете ли вы рассказать, как реализовать OnKeyPreIme для получения ввода с программной клавиатуры Android и принимает ли он также сенсорный ввод?