Java 在android上更改Random()int值
} 当用户猜测正确的数字为不同的随机值时,我试图更改“randomNumber”的值,但我没有找到解决方案。我曾尝试使用布尔值,但没有成功,因为它出现了一个错误“变量'randNum'已在范围中定义”Java 在android上更改Random()int值,java,android,random,Java,Android,Random,} 当用户猜测正确的数字为不同的随机值时,我试图更改“randomNumber”的值,但我没有找到解决方案。我曾尝试使用布尔值,但没有成功,因为它出现了一个错误“变量'randNum'已在范围中定义” 任何帮助都将不胜感激。处理一些变量以修复您的范围 package com.davidcleary.numberguesser; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import an
任何帮助都将不胜感激。处理一些变量以修复您的范围
package com.davidcleary.numberguesser;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
int randomNumber;
boolean isRight;
public void randomGenerator(View view) {
boolean isRight = false;
EditText guess = (EditText) findViewById(R.id.guessText);
String myGuess = guess.getText().toString();
int guessInt = new Integer(guess.getText().toString());
if (guessInt == randomNumber) {
Toast.makeText(getApplicationContext(), "You Guessed The Right Number!!! " + "( " + guessInt + " )" , Toast.LENGTH_LONG).show();
guess.setText("");
isRight = true;
} else if (guessInt > randomNumber) {
Toast.makeText(getApplicationContext(), "Your Guess Is Too High! " + "( " + guessInt + " )", Toast.LENGTH_SHORT).show();
guess.setText("");
} else {
Toast.makeText(getApplicationContext() , "Your Guess Is Too Low! " + "( " + guessInt + " )", Toast.LENGTH_SHORT).show();
guess.setText("");
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Random randNum = new Random();
randomNumber = randNum.nextInt(21);
if (isRight == true) {
randomNumber = randNum.nextInt(21);
}
}
我不完全确定我是否理解你的问题,但是 您可能希望重新使用您正在使用的java.util.Random,因此我将它转换为您的
活动的属性,而不是本地属性:
package com.androidapps.numberguesser;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
int randomNumber;
Random randNum = new Random();
public void randomGenerator(View view) {
EditText guess = (EditText) findViewById(R.id.guessText);
String myGuess = guess.getText().toString();
int guessInt = new Integer(guess.getText().toString());
if (guessInt == randomNumber) {
Toast.makeText(getApplicationContext(), "You Guessed The Right Number!!! " + "( " + guessInt + " )" , Toast.LENGTH_LONG).show();
guess.setText("");
randomNumber = randNum.nextInt(21);
} else if (guessInt > randomNumber) {
Toast.makeText(getApplicationContext(), "Your Guess Is Too High! " + "( " + guessInt + " )", Toast.LENGTH_SHORT).show();
guess.setText("");
} else {
Toast.makeText(getApplicationContext() , "Your Guess Is Too Low! " + "( " + guessInt + " )", Toast.LENGTH_SHORT).show();
guess.setText("");
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
randomNumber = randNum.nextInt(21);
}
}
然后您可以在onCreate
中初始化这些变量:
public class MainActivity extends AppCompatActivity {
int randomNumber;
Random generator;
最后,在正确猜测后,将randomNumber设置为新值:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
generator = new Random();
randomNumber = generator.nextInt(21);
}
谢谢大家的快速回复!我的问题已经解决。可能有助于更具体地了解您尝试了什么,以便我们能够理解您收到的错误消息。*我正在尝试更改'randomNumber'*的值,在onCreate
中,您正在本地范围内重新定义randomNumber
,隐藏类成员。从intrandomNumber
的onCreate中删除int
if (guessInt == randomNumber) {
Toast.makeText(getApplicationContext(),
"You Guessed The Right Number!!! (" + guessInt + ")",
Toast.LENGTH_LONG).show();
guess.setText("");
randomNumber = generator.nextInt(21);
} // ... etc
package com.davidcleary.numberguesser;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
int randomNumber;
Random randNum = new Random();
public void randomGenerator(View view) {
boolean isRight = false;
EditText guess = (EditText) findViewById(R.id.guessText);
String myGuess = guess.getText().toString();
int guessInt = new Integer(guess.getText().toString());
if (guessInt == randomNumber) {
Toast.makeText(getApplicationContext(), "You Guessed The Right Number!!! " + "( " + guessInt + " )" , Toast.LENGTH_LONG).show();
guess.setText("");
randomNumber = randNum.nextInt(21);
} else if (guessInt > randomNumber) {
Toast.makeText(getApplicationContext(), "Your Guess Is Too High! " + "( " + guessInt + " )", Toast.LENGTH_SHORT).show();
guess.setText("");
} else {
Toast.makeText(getApplicationContext() , "Your Guess Is Too Low! " + "( " + guessInt + " )", Toast.LENGTH_SHORT).show();
guess.setText("");
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
randomNumber = randNum.nextInt(21);
}
}