【发布时间】:2011-12-08 14:29:21
【问题描述】:
我正在制作宾果游戏。我有一个 5x5 的图像按钮网格,每个都有自己的文本视图。当应用程序启动或重置时,我希望每个 textview 显示一个随机字符串,而在游戏期间没有任何一个字符串显示两次。我目前在资源数组中有字符串,有 127 项:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="tile_text">
<item>String 1</item>
<item>String 2</item>
<item>String 3</item>
...all the way to String 127
</string-array>
</resources>
并在每个文本视图上显示一个随机字符串:
public String[] myString;
Resources res = getResources();
myString = res.getStringArray(R.array.tile_text);
Random random = new Random(System.currentTimeMillis());
int[] textViews = {
//I have all my textviews added to this array
};
for(int v : textViews) {
TextView tv = (TextView)findViewById(v);
tv.setText(myString[random.nextInt(myString.length)]);
}
上面的效果很好,但是即使数组中有 200 个字符串可供选择,有些项目仍然会显示两次。有没有一种方法可以让数组随机播放,而不是为每场比赛选择两次相同的字符串?我已经搜索并找到了有关随机字符串的信息,但没有关于非重复随机字符串的信息,所以如果这是一个重复的问题,我们深表歉意。
【问题讨论】: