我正在制作应用程序,显示我在显示器上随机设置的数字。这是我的问题,因为我的代码看起来是这样的:
tv1 = (TextView) findViewById(R.id.textView);
btn1 = (Button) findViewById(R.id.button);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final java.util.Random rand = java.util.concurrent.ThreadLocalRandom.current();
new java.util.Timer().scheduleAtFixedRate(new java.util.TimerTask() {
@Override
public void run() {
tv1.setText(rand.nextInt(6) + "-" + rand.nextInt(6) + "-" + rand.nextInt(6));
}
}, 0, 3000);
}
});
}
}有没有可能应用程序会接受我创建的现成的数字集,而不是从6到0的数字?
发布于 2020-05-22 21:03:42
在您的活动类中实现下面给出的方法,您可以使用它来实现您的需求:
// To get the numbers from 0 to 6 use upperBound as 7.
private static String getResult(int lowerBound, int upperBound){
final ThreadLocalRandom rand = ThreadLocalRandom.current();
List<Integer> list = new ArrayList<Integer>();
int number;
for(int counter = 0; counter < 3;counter++){
number = rand.nextInt(lowerBound, upperBound);
while(list.contains(number)) {
number = rand.nextInt(lowerBound, upperBound);
}
list.add(number);
}
Collections.sort(list); //Sorts the list
return list.get(0) + "-" + list.get(1) + "-" + list.get(2);
}在您的TextView tv1 inside run()方法中;只需调用此方法,如下所示:
tv1.setText(getResult(0, 7)); // Remember in the sequence; 0 is inclusive and 7 is exclusive.您可以看到运行的示例
发布于 2020-05-26 21:51:31
如果想从List中抽取随机数,可以使用rand.nextInt(list.size())获取随机索引,因为nextInt的上限参数是独占的。
final java.util.List<Integer> numbers = java.util.Arrays.asList(1, 4, 534, 94);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final java.util.Random rand = java.util.concurrent.ThreadLocalRandom.current();
new java.util.Timer().scheduleAtFixedRate(new java.util.TimerTask() {
@Override
public void run() {
tv1.setText(numbers.get(rand.nextInt(numbers.size())) + "-" + numbers.get(rand.nextInt(numbers.size())) + "-" + numbers.get(rand.nextInt(numbers.size()));
}
}, 0, 3000);
}
});
}
}https://stackoverflow.com/questions/61954842
复制相似问题