如何从数组中随机选择字符串并设置为 textview

时间:2021-02-22 07:01:01

标签: java android-studio

我在 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)); 
}

2 个答案:

答案 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
}