Ich arbeite gerade an einem Udemy-Kurs und baue eine grundlegende App "Höher oder niedriger". Meine App funktioniert im Wesentlichen, aber die Zufallszahl, die sie für uns erraten, ist immer dieselbe, egal wie oft ich die Aktivität zerstöre und neu starte.Variable Zufallszahl der Klasse ... immer gleich? Android.
Mein MainActivity.java
:
//mad import statements here
public class MainActivity extends AppCompatActivity {
int correctNumber;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int correctNumber = generateNum();
}
protected int generateNum(){
Random rand = new Random();
int randNum = rand.nextInt(100);
return randNum;
}
protected void numberEval(View view) {
EditText enteredNumber = (EditText) findViewById(R.id.numberEntry);
String numberString = enteredNumber.getText().toString();
Button pressMe = (Button) findViewById(R.id.button);
int numToEval = Integer.parseInt(numberString);
String result;
TextView showWinLose = (TextView) findViewById(R.id.winLoseText);
if (numToEval > correctNumber) {
result = "Too high!";
} else if (numToEval < correctNumber) {
result = "Too Low!";
}else {
result = "You guessed it!";
}
showWinLose.setText(result);
}
}
super super einfach, nicht wahr? Ursprünglich hieß meine numberEval()
Methode generateNum()
, aber dann erkannte ich, dass es eine neue Zahl erzeugte, um jedes Mal zu erraten, das ich den Knopf drückte. Also habe ich es so eingestellt wie es hier war, wo onCreate()
correctNumber
nur einmal generiert und correctNumber
jetzt eine Klassenvariable ist. Jetzt erzeugt es bei jedem Klick keine neue Nummer, aber es scheint keine neue Nummer zu erzeugen. Es ist bei 0 fest, egal wie oft ich die App starte, schließe, neu starte, etc.
Wie kann ich das beheben? Danke im Voraus.
Weil Sie 'correctNumber' nie auf irgendwas setzen. Beachten Sie, dass hier zwei Variablen namens "correctNumber" sind; einer von ihnen wird verwendet, aber nie gesetzt (so dass er standardmäßig auf 0 gesetzt wird) und der andere wird gesetzt, aber nie benutzt (außer es zu setzen) – immibis