我正在制作一个更高或更低的游戏。我的游戏中需要一个随机数,但问题是每次我按下按钮进行猜测(应用程序使用 EditText 中的数字进行比较)随机数都会发生变化。所以我使用了静态,但现在的问题是函数 findViewById
不再工作,因为它不是静态的。
这是我的代码:
public static void click (View view) {
double number = Math.ceil(Math.random()* 20);
EditText textIn = (EditText) findViewById(R.id.textIn);
int givenN = Integer.parseInt(textIn.getText().toString());
if (number > givenN) {
System.out.println("Higher");
} else if (number == givenN){
System.out.println("Good!");
} else if (number < givenN) {
System.out.println("Lower");
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
最佳答案
The problem is each time that I press the button to guess the random number changes.
对。所以你需要改变它,让它只发生一次。将其移至
onCreate
方法对我来说似乎足够合理:
private double number = -1;
public void click (View view) // Note: no longer static.
{
EditText textIn = (EditText) findViewById(R.id.textIn);
int givenN = Integer.parseInt(textIn.getText().toString());
if (number > givenN) {
System.out.println("Higher");
} else if (number == givenN){
System.out.println("Good!");
} else if (number < givenN) {
System.out.println("Lower");
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
number = Math.ceil(Math.random()* 20);
}
关于java - 我想在非静态类中使用静态随机数。 ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45062074/