【发布时间】:2020-05-18 10:06:08
【问题描述】:
您好,我目前有一个 android 项目正在进行中。用户必须回答一个数学问题,然后应该奖励/拿走答案,然后代码应该显示第二个不同的问题,直到完成 10 个问题。问题是代码跳过循环并立即完成游戏。我曾尝试使用 while 循环,但发生了同样的问题。我考虑了一个 if 但无法弄清楚如何重新运行 if。以下是项目的全部代码,但主要问题是 for 循环。
package com.example.mixmathsv3;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Random;
public class SimpleModeActivity extends AppCompatActivity {
Button checkButt, nextQuestionButt;
TextView resultText, simpleQuestionText, scoreText, questionNumberText;
EditText userAnswer;
public volatile int completedTimes = 0;
public int scoreValue = 0;
public int intUserAnswer = 0;
public String questionAnswer = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simple_mode);
resultText = (TextView) findViewById(R.id.result);
checkButt = (Button) findViewById(R.id.checkButt);
simpleQuestionText = (TextView) findViewById(R.id.simpleQuestionText);
scoreText = (TextView) findViewById(R.id.scoreText);
userAnswer = (EditText) findViewById(R.id.userAnswer);
//nextQuestionButt = (Button) findViewById(R.id.nextQuestion/Butt);
//questionNumberText = (TextView) findViewById(R.id.questionNumberText);
final String[] questionArray = {"5+2", "10+3", "7+1", "9+0", "1+6"};
final String[] answerArray = {"7", "13", "8", "9", "7"};
final Random r = new Random();
int arrayRandom = r.nextInt(questionArray.length);
simpleQuestionText.setText(questionArray[arrayRandom]);
questionAnswer = (answerArray[arrayRandom]);
for (int i = 1; i < 11; i++) {
//System.out.println(i);
//Toast.makeText(getApplicationContext(), ("loop successful"), Toast.LENGTH_SHORT).show();
checkButt.setEnabled(true);
checkButt.setOnClickListener(new View.OnClickListener() {
@SuppressLint("SetTextI18n")
public void onClick(View v) {
checkButt.setEnabled(false);
intUserAnswer = Integer.parseInt(userAnswer.getText().toString());
int intQuestionAnswer = Integer.parseInt(questionAnswer);
if (intUserAnswer == intQuestionAnswer) {
resultText.setText("Correct");
scoreValue = scoreValue + 10;
//completedTimes = + 1;
//questionNumberText.setText(completedTimes);
Toast.makeText(getApplicationContext(), ("Your Score is " + scoreValue), Toast.LENGTH_SHORT).show();
}
if (intUserAnswer != intQuestionAnswer) {
resultText.setText("Incorrect");
scoreValue = scoreValue - 5;
//completedTimes = + 1;
//questionNumberText.setText(completedTimes)
Toast.makeText(getApplicationContext(), ("Your Score is " + scoreValue), Toast.LENGTH_SHORT).show();
}
}
});
}
Toast.makeText(getApplicationContext(), ("Game Over"), Toast.LENGTH_SHORT).show();
【问题讨论】:
-
你得到的答案指出了你的真正问题:缺乏对Android框架如何工作的理解。说真的:考虑不尝试与 Android 一起学习基本的 java。首先学习足够的 Java 来理解您写下的代码基本的作用。然后获得针对 Android 特定问题的优秀教程,并使用这些教程。你就像一个想学习杂耍的人......同时还要学习骑独轮车。不要那样做。否则你会从一个令人沮丧的时刻走到下一个。
-
问题在于这是大学时的作业。他给我们设置了它,没有教我们java或适当的android,所以这一切都必须在过去几个月内学会。是的,在没有老师(电晕)的情况下从 python 到 java 非常困难,这令人沮丧
-
很抱歉听到这个消息,但是你真的应该和你的同龄人和你的导师谈谈。但除此之外:我仍然建议您从学习 android 教程开始。也许像youtube.com/watch?v=AkUfACbi6BE