0
누군가가이 문제를 해결할 수 있기를 바랍니다. 나는 아래 안드로이드 용 게임 앱을 가지고있다. 실제로이 일을합니까내 Android App 추측 게임의 버그
가 어떻게해야 무슨
사용자가 그들이 세 번 잘못 짐작하고 대답은 말한다하지만 AlertDialog를 가지고, 잘못을 세 번 추측 때입니다 .... 문제가되는 버그는 사용자가 세 번째 시도에서 올바른 답을 얻는다면, 알맞은 경고를 표시하는 것과는 달리 세 번 잘못되었다는 경고를 불러옵니다. 두 경고는이 한 번만 제외하고는 정상적으로 작동합니다.
앱의 다른 모든 기능이 내가 원하는대로 작동합니다.
아무도 아이디어가 없습니까?
감사
public class Task1Activity extends AppCompatActivity {
int attempts = 0;
final int maxAttempts = 1;
Random randGen = new Random();
int ranNum;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.task1_layout);
final TextView textResponse = (TextView) findViewById(R.id.txtResponse);
final TextView guessText = (TextView) findViewById(R.id.txtAnswer);
final EditText userGuess = (EditText) findViewById(R.id.etNumber);
Button pressMe = (Button) findViewById(R.id.btnGuess);
randGen = new Random();
// Generate number once
ranNum = randGen.nextInt(20);
final Toast toast = Toast.makeText(getApplicationContext(), "Please guess between 0 and 20", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 350);
// When the button is clicked, it shows the text assigned to the txtResponse TextView box
pressMe.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final AlertDialog.Builder alert = new AlertDialog.Builder(Task1Activity.this);
alert.setTitle("Unlucky");
alert.setCancelable(false);
alert.setMessage("You have guessed incorrectly three times. " +
"The answer was " + ranNum + ". " + "Would you like to play again?")
//.setCancelable(true)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//dialog.dismiss();
Intent i = new Intent(Task1Activity.this, Task1Activity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
});
alert
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
//Task1Activity.this.finish();
dialog.dismiss();
finishAffinity();
};
});
final AlertDialog.Builder alert2 = new AlertDialog.Builder(Task1Activity.this);
alert2.setTitle("You Did It!");
alert2.setCancelable(false);
alert2.setMessage("The answer was " + ranNum + ". " + "Would you like to play again?")
//.setCancelable(true)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//dialog.dismiss();
Intent i = new Intent(Task1Activity.this, Task1Activity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
});
alert2
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int i) {
//Task1Activity.this.finish();
dialog.dismiss();
finishAffinity();
};
});
int userNumber = Integer.parseInt(userGuess.getText().toString());
if (userNumber > 19) {
//guessText.setText("Please guess between 0 and 20");
//guessText.setBackgroundColor(Color.WHITE);
toast.show();
} else if (userNumber < ranNum) {
guessText.setText("Your answer is too low. Guess again!");
guessText.setBackgroundColor(Color.YELLOW);
} else if (userNumber > ranNum) {
guessText.setText("Your answer is too high. Guess again!");
guessText.setBackgroundColor(Color.RED);
} else if (userNumber == ranNum) {
ranNum = randGen.nextInt(20);
//guessText.setText("You did it!");
//guessText.setBackgroundColor(Color.WHITE);
alert2.show();
}
if (attempts++ > maxAttempts) {
alert.show();
//guessText.setText("You have guessed incorrectly three times. The answer was " + ranNum);
} else {
String randText = "";
randText = Integer.toString(ranNum);
textResponse.setText("");
userGuess.setText("");
}
}
}
);
}
}