Android 在oncreate方法之外生成随机数
我正在尝试设置我的活动,以便可以从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
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);