2017-01-31 30 views
2

Когда я запускаю приложение Codenameone на Android-устройстве, нажатие кнопки аппаратного возврата останавливает/завершает мое приложение. Я добавил back-Command в форму, но это не сработает. Кнопка аппаратного возврата работает, как и ожидалось, когда я вызываю вторую форму из первой формы и нажимаю кнопку аппаратного возврата (вторая форма закрывается, а первая отображается).Codenameone: Как предотвратить аппаратную кнопку Android для выхода из приложения?

Как я могу предотвратить, что приложение выходит, когда нажата кнопка аппаратного возврата в первой форме?

ответ

1

Вы можете переопределить onBackPressed() обрабатывать кнопку назад, нажмите:

@Override 
public void onBackPressed() { 
} 

Оставив его как таковой, сделает ваше приложение не реагирует кнопку обратно. Если я правильно понял вопрос, это то, чего вы пытаетесь достичь!

+0

В каком классе в Codename есть метод onBackPressed(), который можно было бы переопределить? – KlausHeywinkel

+0

Я не получил ваш комментарий правильно, было бы лучше, если бы вы могли объяснить это больше! – OBX

+0

Переопределить метод означает, что существует класс, который уже имеет такой метод. Но я не могу найти класс, у которого уже есть метод под названием onBackPressed(). – KlausHeywinkel

2
@Override 
    public void onBackPressed() { 
     // nothing to code 
    } 

Вы должны переопределить onBackPressed метод и держать его пустым, то ваше приложение не получит выход при нажатии кнопки назад на первом экране

2

вызовов form.setBackCommand(new Command("")); отключить по умолчанию минимизировать поведение на Form ,

+0

Хмм - Извините, но добавив пустую команду(), поскольку backCommand в форму не препятствует тому, чтобы приложение было остановлено при нажатии кнопки аппаратного возврата. Есть ли что-нибудь еще, что я мог бы попробовать? Два других разработчика писали, что я должен переопределить onBackPressed() - но я не могу найти класс, где я могу перезаписать этот метод. – KlausHeywinkel

+0

Вам нужно сделать это в экземпляре правой формы, вы используете старый создатель gui или что-то еще. Другие ребята говорят о родном Android, который здесь не применим. –

+0

Я создаю основную форму в стартовом классе (тот, который имеет метод start() и init()) в качестве переменной экземпляра. Существуют и другие формы, которые называются/открываются из основной формы. Другие формы имеют back-команды, которые работали корректно с помощью аппаратной кнопки Android (это означает, что приложение не завершено), но основная форма снова открывается с помощью showBack()). Более старый GUI-Builder используется только для целей стилизации. – KlausHeywinkel