Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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 在android上更改Random()int值_Java_Android_Random - Fatal编程技术网

Java 在android上更改Random()int值

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

}

当用户猜测正确的数字为不同的随机值时,我试图更改“randomNumber”的值,但我没有找到解决方案。我曾尝试使用布尔值,但没有成功,因为它出现了一个错误“变量'randNum'已在范围中定义”


任何帮助都将不胜感激。

处理一些变量以修复您的范围

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);

    }
}