私はUdemyコースで働いており、基本的な「高低」アプリを構築しています。私のアプリは本質的には機能しますが、私たちが推測する乱数は、何度もアクティビティを破棄して再起動しても同じです。クラス変数の乱数...常に同じですか?アンドロイド。
マイ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);
}
}
超超基本的な?もともと、私のnumberEval()
メソッドはgenerateNum()
と呼ばれていましたが、ボタンを押すたびに新しい番号が生成されていることに気付きました。だから私はそれがここにあるように設定しました。ここでonCreate()
はcorrectNumber
を生成し、correctNumber
はクラス変数になります。今は、ボタンのクリックごとに新しい数値を生成することはありませんが、新しい数値を生成するようなことはありません。アプリを起動、終了、再起動などしても、0になってしまいます。
どうすればこの問題を解決できますか?前もって感謝します。
'correctNumber'は決して何にも設定していないからです。 'correctNumber'と呼ばれる2つの変数があります。そのうちの1つは使用されますが設定されることはありません(デフォルトでは0に設定されています)。もう1つは設定されていますが、 – immibis