Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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 - Fatal编程技术网

Java 安卓-按下按钮后,如何使按钮具有不同的功能?

Java 安卓-按下按钮后,如何使按钮具有不同的功能?,java,android,Java,Android,因此,在我的代码中,用户必须回答一个快速的数学问题并按下按钮来回答,但对于下一个问题,它不会检查第二个答案,而只检查第一个答案。你怎么能让它检查下一个答案而不是上一个 primaryText.setText(问题[0]) 这样,在第一个问题完成后,它将显示第二个问题。它只适用于两个问题,而不是 OnClickListener 尝试: 您应该将逻辑移到一个单独的方法中,并将一个问题对象传递给该方法。通过这种方式,您可以将其扩展到任意数量的问题,而不会出现问题。从外观上看,您的代码可以使用一些重构

因此,在我的代码中,用户必须回答一个快速的数学问题并按下按钮来回答,但对于下一个问题,它不会检查第二个答案,而只检查第一个答案。你怎么能让它检查下一个答案而不是上一个

primaryText.setText(问题[0])

这样,在第一个问题完成后,它将显示第二个问题。它只适用于两个问题,而不是

OnClickListener
尝试:


您应该将逻辑移到一个单独的方法中,并将一个问题对象传递给该方法。通过这种方式,您可以将其扩展到任意数量的问题,而不会出现问题。从外观上看,您的代码可以使用一些重构使其更加面向对象。虽然这解决了一个问题,但它仍然不可伸缩,而且似乎是一种非常糟糕的做法。
boolean questionComplete = false;
enter.setOnClickListener(

        new Button.OnClickListener() {

            public void onClick(View v)

            {
                if(!(questionComplete)){
                if(numberVal.getText().toString().equals("14")) {
                    questionComplete = true;
                    primaryText.setText(Questions[1]);

                }
                }
                else {
                if(numberVal.getText().toString().equals("5")) {

                    primaryText.setText(Questions[2]);

                }
               }
            }
        }
);
OnClickListener
MyBtn1.setOnTouchListener(new View.OnTouchListener(){
            @Override
            public boolean onTouch(View v, MotionEvent event){
                if(event.getAction() == MotionEvent.ACTION_UP){
                    //do stuff
                }
                else if(event.getAction() == MotionEvent.ACTION_DOWN){
                    //do stuff
                }
                else if(event.getAction() == MotionEvent.ACTION_CANCEL){
                    //do stuff
                }
            return true;
            }
        });