1

こんにちは、Android アプリに問題があります。ブールメソッドを使用して戻るボタンの機能を変更し、レイアウトを変更します。コードに示されているように、if- ステートメントを使用し、これらが true の場合、レイアウトが変更されます。問題は、ボタンの機能を変更したいさまざまな状況で複数のポイントがあることです。しかし、関数をコピーして名前を変更すると、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);

}
4

1 に答える 1

0

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);

}
于 2013-03-02T12:15:38.663 に答える