Android 使用多个字符串数组并动态获取字符串数组

Android 使用多个字符串数组并动态获取字符串数组,android,string,resources,textview,settext,Android,String,Resources,Textview,Settext,我想使用一个随机数生成器来选择存储在.xml文件中的一张卡片作为字符串数组 目前我知道我可以通过调用 String[] cards = getResources().getStringArray(R.array.card1); text1.setText(cards[0]); text2.setText(cards[1]); text3.setText(cards[2]); text4.setText(cards[3]); text5.setText(cards[4]); text6.setT

我想使用一个随机数生成器来选择存储在.xml文件中的一张卡片作为字符串数组

目前我知道我可以通过调用

String[] cards = getResources().getStringArray(R.array.card1);

text1.setText(cards[0]);
text2.setText(cards[1]);
text3.setText(cards[2]);
text4.setText(cards[3]);
text5.setText(cards[4]);
text6.setText(cards[5]);
这将正确加载字符串数组中的项

我的问题是,当生成一个随机数时,我如何使用该随机数

.getStringArray(R.array.cardX);

其中x是生成的整数,因此每次我都可以随机生成字符串列表。我想我是想在.getSringArray(X)中输入一些变量,但我不知道该怎么做。如果你对如何做到这一点有任何其他建议,也会有所帮助。感谢您的帮助

如果我理解正确,您有多个字符串数组资源可供随机选择

不幸的是,资源ID生成为变量,无法从字符串生成资源ID。如果查看构建目录中的
R.java
,您会注意到资源ID在其中声明为实际变量

您必须这样做,即创建一个要从中选择的资源ID列表,如下所示:

import java.util.Random;

int[] cardStringResourceIds = {
  R.array.cards1,
  R.array.cards2,
  R.array.cards3,
};

Random random = new Random();
int randomIndex = random.nextInt(cardStringResourceIds.length);

String[] cards = getResources().getStringArray(cardStringResourceIds[randomIndex]);

我可以洗牌而不是使用随机数生成器吗。我该怎么做?我试图避免重复。洗牌哪张牌?
卡[]
阵列中的卡?是。谢谢Elimirks。从那以后我就知道怎么做了。集合。洗牌(列表);不过你真的帮了我一把。我很感激。如果我有足够的声誉,我会投票给你,但我不能,我已经在这个网站上潜伏了很长时间了。