我在 res/values 文件夹中创建了 array.xml,其中包含 5 个字符串(avalaible_buses 作为数组的名称)。请问如何从这个数组中随机选择字符串并将其显示在 textview 上。下面是我的尝试。 SeatNumber 是文本视图的名称。
public void seatNumber (View view) {
String[] myArray = getResources().getStringArray(array.avalaible_buses);
TextView seatNumber = (TextView) findViewById(R.id.seatNumber);
Random random = new Random();
seatNumber.setText(random.nextInt(myArray));
}
答案 0 :(得分:1)
把问题分解成更小的部分。
在 0 和数组的最后一个索引之间生成一个随机数
// get a random number between 0 and array length - 1 inclusive (last index)
Random random = new Random();
int index = random.nextInt(myArray.length);
更新界面
seatNumber.setText(myArray[index]);
注意
数组定义为
String[] myArray = getResources().getStringArray(array.avalaible_buses);
这种写法似乎是数组资源 (available_buses
) 处理的是实际的公共汽车,而不是公共汽车上的座位。如果这是正确的,我会期望像 busName
这样的文本 (ui) 控件。
如果您为乘客(座位号)分配一个随机号码,您还需要跟踪谁上车和谁下车,以避免将相同的随机号码分配给两个人。换句话说,数组会根据可用性而变化。
答案 1 :(得分:0)
更改第 5 行,如下所示。
public void seatNumber (View view) {
String[] myArray = getResources().getStringArray(array.avalaible_buses);
TextView seatNumber = (TextView) findViewById(R.id.seatNumber);
Random random = new Random();
seatNumber.setText(myArray(random.nextInt(myArray.length))); // Line #5
}