我正在为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);
}
}
答案 0 :(得分:1)
您为按钮设置了错误的tag
。标签应为0
至3
,标签应为button1
至button4
。