2014-03-25 38 views
0

我想使用一个随机数生成器来选择存储在我的.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),但我不知道如何做到这一点。如果您对如何做到这一点有任何其他建议,那也会有所帮助。感谢您的帮助

回答

0

如果我正确理解你,你有几个字符串数组资源,你想随机选择。

不幸的是,资源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]); 
+0

感谢那些伟大的工作! – Chavez

+0

我可以洗牌而不是使用随机数发生器。我会怎么做?我试图避免重复。 – Chavez

+0

随机洗牌? '''卡片[]'''数组中的卡片? – elimirks