Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.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
Android 在oncreate方法之外生成随机数_Android_Methods_Random_Static - Fatal编程技术网

Android 在oncreate方法之外生成随机数

Android 在oncreate方法之外生成随机数,android,methods,random,static,Android,Methods,Random,Static,我正在尝试设置我的活动,以便可以从onCreate方法之外的方法生成一组随机数。下面是我的活动是如何设置的 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.optionOne(); this.optionTwo(); this.optionThree(); } public void optionOne() { // generate a r

我正在尝试设置我的活动,以便可以从onCreate方法之外的方法生成一组随机数。下面是我的活动是如何设置的

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  this.optionOne();
  this.optionTwo();
  this.optionThree();
}

public void optionOne() {
  // generate a random number here
  int random = Math.random();

  // generate more random numbers and do more stuff here
} 
问题是,我在onCreate方法之外生成的任何随机数都被认为是“静态”的,并且这些数字总是0。如果我在onCreate方法中生成数字,它当然可以正常工作。如何修复此问题?

使用

Random rand = new Random(); 
int random = rand.nextInt();

据博士说

Math.random()返回一个伪随机双精度n,其中n>=0.0&&n<1.0。

要生成随机数,这将在特定范围内创建随机数

public void optionOne() {
   var=(int)(Math.random() * (max - min) + min)    //math.random will return integer values 
  // use your var wisely
} 
将其声明为类的成员。

然后随时调用
ranGenerator.nextInt()
即可获得它。

这将帮助您创建非重复随机数的数组列表

 ArrayList<Integer> indexArray = new ArrayList<Integer>();
    for (i = 0; i < 202; ++i) {
                number.add(i);
                // number.add(num);
            }
            Collections.shuffle(number);
ArrayList indexArray=new ArrayList();
对于(i=0;i<202;++i){
编号。添加(i);
//添加(num);
}
收藏。洗牌(数字);

Math.random()返回0.0到1.0,如果您将其称为“int”,它将删除小数,保留为0。@wtsang02-实际上我在做Math.random(max_值),我只是删除了多余的数字以简化示例。不过,你的另一个答案解决了我的问题!谢谢:)谢谢!你免去了我一个大头疼。
public void optionOne() {
   var=(int)(Math.random() * (max - min) + min)    //math.random will return integer values 
  // use your var wisely
} 
private static Random ranGenerator=new Random();
 ArrayList<Integer> indexArray = new ArrayList<Integer>();
    for (i = 0; i < 202; ++i) {
                number.add(i);
                // number.add(num);
            }
            Collections.shuffle(number);