Несколько ключевых событий?

Привет, у меня проблема с моим приложением для Android. Я использую логический метод, чтобы изменить функцию кнопки «Назад», чтобы изменить макет. Как показано в коде, если я использую оператор if- и если эти вещи верны, макет изменяется. Проблема в том, что у меня есть более одной точки с разными ситуациями, когда я хотел бы изменить функцию кнопки. Но если я скопирую функцию и изменю имя, eclipse захочет удалить переопределение @, и тогда этот метод больше не работает.

Итак, теперь вопрос: как я могу создать несколько KeyEvents?

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && lengthisopen == true){

        lengthisopen = false;
        setContentView(R.layout.length);
        return true;
    } 
    return super.onKeyDown(keyCode, event);

}


public boolean onKeyDown2(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && lengthisopen == true){

        lengthisopen = false;
        setContentView(R.layout.length);
        return true;
    } 
    return super.onKeyDown(keyCode, event);

}

person Andreas Thaler    schedule 02.03.2013    source источник
comment
Оба ваших метода одинаковы. Зачем вам их 2?   -  person lokoko    schedule 02.03.2013
comment
о, извините, второй метод должен быть R.layout.time   -  person Andreas Thaler    schedule 02.03.2013


Ответы (1)


onKeyDown(int keyCode, KeyEvent event) — это доступный метод Activity, так что вы можете переопределить его. Но onKeyDown2() не является методом суперкласса. Таким образом, вы не можете переопределить его из любого из суперклассов. Вот почему вам сказали удалить @override.

Если вы хотите создать несколько ключевых событий, вам следует перейти только к

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && lengthisopen == true){

        lengthisopen = false;
        setContentView(R.layout.length);
        return true;
    } 
    else if(condition){
         // next code
    }
    return super.onKeyDown(keyCode, event);

}
person Gunaseelan    schedule 02.03.2013
comment
Спасибо, это именно то, что я хочу, но если я попробую это на виртуальном устройстве, он скажет, что TL Calc, к сожалению, остановил сбой ... - person Andreas Thaler; 02.03.2013