#android
#Android
Вопрос:
В моем приложении у меня есть кнопка, по которой, если пользователь нажимает, на экране появляется текстовое поле (я использую setVisibility от GONE до VISIBILE). проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь нажимает кнопку «НАЗАД» на устройстве: оно закрывает мое приложение.
Есть ли какой-либо способ, чтобы, когда пользователь нажимает кнопку «НАЗАД», вызывался мой код (чтобы я мог установить видимость ПРОПАВШЕЙ)?
Ответ №1:
Начиная с уровня API 1, работает следующее:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//Do whatever you want
//AND
//return true to tell the framework you did handle the back key
return true;
}
//This is not the back key, just ask the framework to behave as usual.
return super.onKeyDown(keyCode, event);
}
Начиная с уровня API 5 (Android 2.0), вы также можете использовать:
@Override
public void onBackPressed() {
// Do something (or nothing) here
return;
}
Смотрите Это сообщение в блоге разработчика Android для получения полного обзора.
Комментарии:
1. завершение по умолчанию не будет работать, если мы не вызовем метод суперкласса super.onKeyDown (код ключа, событие), просматривая мой код;
2. @ArpitGarg, вы имеете в виду, что возврат
false
кonKeyDown
приведенному выше неfinish()
приведет к активности?3. да, возврат false в onKeyDown выше не завершит () действие … вот почему я предположил, что
Ответ №2:
Переопределите onBackPressed()
желаемую функциональность.
Реализация по умолчанию просто вызывает finish()
закрытие текущего действия.
Комментарии:
1. Примечание: Это доступно только с Android 2.0 и выше. (Уровень API 5)
Ответ №3:
public boolean onKeyDown(int keyCode, KeyEvent keyEvent) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Put your code here
}
return true;
}
Комментарии:
1. Внимание! случается, что вы отменяете все нажатия клавиш, безоговорочно возвращая true здесь. Это плохо, если вы пытаетесь использовать
EditText
🙂2. спасибо,,, вы правы, возврат true отменит каждое нажатие клавиши