Entschuldigung, wenn ich diese Frage nicht richtig einreiche. Es ist mein erstes Mal hier.While-Schleife bewirkt, dass die App einfriert
Also bin ich neu in der Programmierung und App-Entwicklung. Ich habe in den letzten Wochen Java gelernt und versuche eine Android-App zu erstellen. Es ist nur ein einfaches Zahlen-Ratespiel.
Also ich habe den Code jetzt wo, wenn es nur ein paar "if" -Aussagen, es wird funktionieren. Natürlich bekommst du damit nur eine Vermutung, da es keine Schleife ist.
Wenn ich es in eine While-Schleife setze, wird die App einfrieren, wenn die While-Schleife versucht, eine Schleife zu machen. Hier
ist der Code:
package com.example.jeremy.numberguessinggame;
import org.w3c.dom.Text;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView title = (TextView) findViewById(R.id.textView1);
final EditText userGuess = (EditText) findViewById(R.id.editText1);
Button btnSubmit = (Button) findViewById(R.id.button1);
final TextView guessFeedback = (TextView) findViewById(R.id.textView2);
final TextView textNumberOfGuesses = (TextView) findViewById(R.id.textView3);
final TextView textGuessNumber = (TextView) findViewById(R.id.textView4);
final TextView textCorrectNumber = (TextView) findViewById(R.id.tempText);
Random rand = new Random();
final int correctNumber = rand.nextInt(5)+1;
//This line is to convert the int correctNumber to a String
textCorrectNumber.setText(String.valueOf(correctNumber));
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int numberOfTries = 0;
//To compare (EditText)userGuess to (integer)rand, we need to get a String from userGuess, and then
//convert that string into an integer
String convertedString = userGuess.getText().toString();
int convertedNumber = Integer.parseInt(convertedString);
while (true) {
if (convertedNumber == correctNumber) {
guessFeedback.setText("You guessed the correct number");
numberOfTries++;
textGuessNumber.setText(String.valueOf(numberOfTries));
title.setText("YOU WON!!!!!");
break;
} else if (convertedNumber > 5 || convertedNumber < 1) {
guessFeedback.setText("The number is between 1 and 5.");
numberOfTries++;
textGuessNumber.setText(String.valueOf(numberOfTries));
} else if (convertedString.equals(null)) {
guessFeedback.setText("Nope.");
} else if (convertedNumber > correctNumber) {
guessFeedback.setText("Your guess is too high.");
numberOfTries++;
textGuessNumber.setText(String.valueOf(numberOfTries));
} else if (convertedNumber < correctNumber) {
guessFeedback.setText("Your guess is too low.");
numberOfTries++;
textGuessNumber.setText(String.valueOf(numberOfTries));
}
}
}
});
}
Ich habe versucht, es einen angemessenen Betrag schon googeln, aber ich finde nicht viel Hilfe bei dieser Ausgabe. Hier ist ein Link zum Code: https://pastebin.com/B11pgvzD.
Wer hat eine Vorstellung davon, was es sein könnte?