Android Studio中两个数字相加的错误结果

时间:2018-07-25 01:31:09

标签: java android textview

我正在为Android用户开发一个大脑训练器应用程序。问题是,当我尝试将两个数字相加时,有时会得到错误的结果(例如:问题是2 + 2,并且当我按下按钮并显示结果是错误的时)。但是它是随机发生的。感谢有人可以帮助我改正方式。谢谢。

这是MainActivity.java

import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Random;

public class MainActivity extends AppCompatActivity{

    Button button, button1, button2, button3, button4, button5;
    RelativeLayout relativeLayout;
    TextView sumTextView, resultTextView, pointTextView, timerTextView;
    ArrayList<Integer> answers=new ArrayList<Integer>();
    int locOfCorrectAns, score=0, noOfQues=0;

    public void playAgain(View view) {
        score=0;
        noOfQues=0;
        pointTextView.setText("0/0");
        resultTextView.setText("");
        timerTextView.setText("30s");
        button5.setVisibility(View.INVISIBLE);                  
        generateQues();

        new CountDownTimer(30100, 1000){
            @Override
            public void onTick(long l){
                timerTextView.setText(String.valueOf(l/1000)+"s");
            }

            @Override
            public void onFinish(){
                button5.setVisibility(View.VISIBLE);
                timerTextView.setText("0s");
                resultTextView.setText(Integer.toString(score)+"/"+Integer.toString(noOfQues));
            }
        }.start();
    }

    public void generateQues(){

        Random random=new Random();
        int a=random.nextInt(21);
        int b=random.nextInt(21);
        sumTextView.setText(Integer.toString(a)+"+"+Integer.toString(b));             
        locOfCorrectAns=random.nextInt(4);    
        answers.clear();            
        int incorrectAns;

        for (int i=0;i<4;i++){

            if ((i == locOfCorrectAns)){
                answers.add(a + b);
            }
            else{
                incorrectAns=random.nextInt(41);

                while (incorrectAns == a + b){
                    incorrectAns=random.nextInt(41);
                }
                answers.add(incorrectAns);
            }
        }

        button1.setText(Integer.toString(answers.get(0)));
        button2.setText(Integer.toString(answers.get(1)));
        button3.setText(Integer.toString(answers.get(2)));
        button4.setText(Integer.toString(answers.get(3)));               
    }

    public void chooseAns(View view){

        if (view.getTag().toString().equals(Integer.toString(locOfCorrectAns))){
            score++;
            resultTextView.setText("Correct!");
        }
        else{
             resultTextView.setText("Wrong!");
        }
        noOfQues++;
        pointTextView.setText(Integer.toString(score)+"/"+Integer.toString(noOfQues));
        generateQues();
    }

    public void go(View view){

        button.setVisibility(View.INVISIBLE);
        relativeLayout.setVisibility(View.VISIBLE);
        playAgain(findViewById(R.id.playAgain));
    }

    @Override
    protected void onCreate(Bundle savedInstanceState){

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);  
        sumTextView=(TextView)findViewById(R.id.sumTextView) ;
        button=(Button)findViewById(R.id.button);
        button1=(Button)findViewById(R.id.button1);
        button2=(Button)findViewById(R.id.button2);
        button3=(Button)findViewById(R.id.button3);
        button4=(Button)findViewById(R.id.button4);
        button5=(Button)findViewById(R.id.playAgain);
        resultTextView=(TextView)findViewById(R.id.textView4);
        pointTextView=(TextView)findViewById(R.id.scoreTextView);
        timerTextView=(TextView)findViewById(R.id.timerTextView);
        relativeLayout=(RelativeLayout)findViewById(R.id.relativeLay);
    }
}





       

1 个答案:

答案 0 :(得分:1)

您为按钮设置了错误的tag。标签应为03,标签应为button1button4