3

我正在尝试设置我的活动,以便我可以从我的 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 方法中生成数字,它当然可以正常工作。我怎样才能解决这个问题?

4

4 回答 4

2
private static Random ranGenerator=new Random();

将其声明为类的成员。
然后ranGenerator.nextInt()随时打电话来获取它。

于 2013-04-23T03:43:53.803 回答
1

要生成随机数使用,这将在特定范围之间创建随机数

public void optionOne() {
   var=(int)(Math.random() * (max - min) + min)    //math.random will return integer values 
  // use your var wisely
} 
于 2013-04-23T03:43:06.343 回答
0

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

 ArrayList<Integer> indexArray = new ArrayList<Integer>();
    for (i = 0; i < 202; ++i) {
                number.add(i);
                // number.add(num);
            }
            Collections.shuffle(number);
于 2013-04-23T05:28:10.883 回答
0

利用

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

或者

int random = rand.nextInt(range);

根据这里的文档

Math.random() Returns a pseudo-random double n, where n >= 0.0 && n < 1.0.
于 2013-04-23T03:41:45.557 回答