您的代码几乎等同于:
int arr1[]={1,2,3,4,5,6,7,8,9,10};
int num = arr1[(int)(Math.random()*10)];
one.setText(""+num);
two.setText(""+num);
three.setText(""+num);
这就是为什么您会看到 3 次相同的数字。
您应该使用Random#nextInt(int n)而不是您的数组并生成 3 个随机数:
Random r = new Random();
one.setText(Integer.toString(1 + r.nextInt(10)));
two.setText(Integer.toString(1 + r.nextInt(10)));
three.setText(Integer.toString(1 + r.nextInt(10)));
如果您希望您的数字不重复,例如可以使用 Set :
Random r = new Random();
Set<Integer> randomNumbers = new HashSet<Integer>();
while(randomNumbers.size() <= 3){
//If the new integer is contained in the set, it will not be duplicated.
randomNumbers.add(1 + r.nextInt(10));
}
//Now, randomNumbers contains 3 differents numbers.