Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多个关键事件?_Java_Android_Eclipse_Overriding_Keyevent - Fatal编程技术网

Java 多个关键事件?

Java 多个关键事件?,java,android,eclipse,overriding,keyevent,Java,Android,Eclipse,Overriding,Keyevent,嗨,我的Android应用程序有问题。我使用布尔方法更改后退按钮的功能以更改布局。如代码所示,如果我使用if-语句,并且如果这些都是真的,那么布局就会改变。问题是,在不同的情况下,我有不止一点想要修改按钮的功能。但是,如果我复制函数并更改名称,eclipse希望删除@override,那么该方法将不再有效 现在的问题是:如何创建多个KeyEvents @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if

嗨,我的Android应用程序有问题。我使用布尔方法更改后退按钮的功能以更改布局。如代码所示,如果我使用if-语句,并且如果这些都是真的,那么布局就会改变。问题是,在不同的情况下,我有不止一点想要修改按钮的功能。但是,如果我复制函数并更改名称,eclipse希望删除@override,那么该方法将不再有效

现在的问题是:如何创建多个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);

}
onKeyDownint keyCode,KeyEvent事件是一个可用于活动的方法,因此您可以重写它。但是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);

}

你的两种方法都是一样的。为什么你需要两个呢?哦,sry第二个方法应该是R.layout.time谢谢,这正是我想要的,但是如果我在虚拟设备中尝试,它说TL Calc不幸停止了一个崩溃。。。