Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想在单击按钮时生成一个随机数,但变量超出范围。我该如何解决这个问题?_Java_Android_Android Developer Api - Fatal编程技术网

Java 我想在单击按钮时生成一个随机数,但变量超出范围。我该如何解决这个问题?

Java 我想在单击按钮时生成一个随机数,但变量超出范围。我该如何解决这个问题?,java,android,android-developer-api,Java,Android,Android Developer Api,我正在尝试在android studio上制作一个应用程序。我有一个按钮,按下时会产生一个新的随机数。如何将新生成的号码传递给代码 public class MainActivity extends AppCompatActivity { Random rand = new Random(); public void NewNumOnClick (View view){ int RandomNumberGenerated = 1+ rand.nextInt(20);

我正在尝试在android studio上制作一个应用程序。我有一个按钮,按下时会产生一个新的随机数。如何将新生成的号码传递给代码

public class MainActivity extends AppCompatActivity {

    Random rand = new Random();

    public void NewNumOnClick (View view){
    int RandomNumberGenerated = 1+ rand.nextInt(20);

    }


    public void GuessOnClick(View view){
        EditText numberGuessed = (EditText) findViewById(R.id.numberGuessedET);
        int input = Integer.parseInt(numberGuessed.getText().toString());
        Log.i("Status : " , "The user entered " + input);

        if (input > 20 || input < 1){
            Toast.makeText(this,"The number you entered is out of range. Please enter #1-20", Toast.LENGTH_LONG).show();
        }

        if (RandomNumberGenerated == input){
            Toast.makeText(this,"YOU GUESSED IT RIGHT!", Toast.LENGTH_LONG).show();
        }

        if(input > RandomNumberGenerated){
            Toast.makeText(this,"Try a lower number", Toast.LENGTH_LONG).show();

        }
        if (input < RandomNumberGenerated)
            Toast.makeText(this,"Try a higher number", Toast.LENGTH_LONG).show();



    }
public类MainActivity扩展了AppCompatActivity{
Random rand=新的Random();
公共void NewNumOnClick(视图){
int RandomNumberGenerated=1+rand.nextInt(20);
}
公共void GuessOnClick(视图){
EditText NumberGuesed=(EditText)findViewById(R.id.NumberGuesedET);
int input=Integer.parseInt(numberguesed.getText().toString());
Log.i(“状态:”,“用户输入”+输入);
如果(输入>20 | |输入<1){
Toast.makeText(此“您输入的数字超出范围。请输入#1-20”,Toast.LENGTH_LONG)。show();
}
if(RandomNumberGenerated==输入){
Toast.makeText(这是“你猜对了!”,Toast.LENGTH\u LONG.show();
}
如果(输入>随机数生成){
Toast.makeText(这是“尝试一个较低的数字”,Toast.LENGTH_LONG.show();
}
如果(输入<随机数生成)
Toast.makeText(这是“尝试更高的数字”,Toast.LENGTH_LONG.show();
}

GuessOnClick函数不知道RandomNumberGenerated变量。如何使用指针?这能解决问题吗?

只需在活动中将int RandomNumberGenerated声明为字段成员变量

 public class MainActivity extends AppCompatActivity {
      Random rand = new Random();
      int mRandomNumberGenerated;
      ...........

Java不支持指针。将
RandomNumberGenerated
设置为
MainActivity
类上的一个字段,而不是一个局部变量。然后,该类中的其他方法可以引用它。(此外,Java惯例是以小写形式开始变量和字段名:
RandomNumberGenerated
)说真的,您知道如何处理对象成员
随机rand
,但不知道如何在不同范围内共享变量。可能存在重复的