在没有任何重复的情况下将随机文本设置为多个TextView

时间:2015-11-24 11:19:56

标签: android random textview

Hello Guys我是Android的新手。我正在开发一个应用程序,但卡在这里。我想将随机文本设置为TextView并且我成功完成了但是我在所有textview上得到相同的文本。我想如果设置为一个textview的文本不应该显示给其他意味着它不应该重复。任何帮助必须得到赞赏。我在这里发布一些代码。

int[] array_set_up_text;
Random rand_set_up_text;

rand_set_up_text = new Random();
    array_set_up_text = new int[] { R.string.set_up_text1,  R.string.set_up_text2, R.string.set_up_text3,
            R.string.set_up_text4, R.string.set_up_text5, R.string.set_up_text6, R.string.set_up_text7,
             R.string.set_up_text8,R.string.set_up_text9,R.string.set_up_text10,R.string.set_up_text11,R.string.set_up_text12};
    rand_text_set_up = rand_set_up_text.nextInt(array_set_up_text.length - 1);

text1.setText(array_set_up_text[rand_text_set_up]);
text2.setText(array_set_up_text[rand_text_set_up]);
text3.setText(array_set_up_text[rand_text_set_up]);

3 个答案:

答案 0 :(得分:1)

将您的代码更改为:

text1.setText(array_set_up_text[rand_set_up_text.nextInt(array_set_up_text.length)]);
text2.setText(array_set_up_text[rand_set_up_text.nextInt(array_set_up_text.length)]);
text3.setText(array_set_up_text[rand_set_up_text.nextInt(array_set_up_text.length)]);

答案 1 :(得分:1)

每次都需要调用nextInt()方法:

text1.setText(array_set_up_text[rand_text_set_up]);
rand_set_up_text.nextInt()
text2.setText(array_set_up_text[rand_text_set_up]);
rand_set_up_text.nextInt()
text3.setText(array_set_up_text[rand_text_set_up]);

答案 2 :(得分:0)

你的问题就在这一行

 rand_text_set_up = rand_set_up_text.nextInt(array_set_up_text.length - 1);

您获得一次随机排名,然后不要更新。

最简单的解决方案是执行以下操作

rand_text_set_up = rand_set_up_text.nextInt(array_set_up_text.length - 1);
text2.setText(array_set_up_text[rand_text_set_up]);

//Get a new random position.
rand_text_set_up = rand_set_up_text.nextInt(array_set_up_text.length - 1);
text3.setText(array_set_up_text[rand_text_set_up]);

//Get a new random position.
rand_text_set_up = rand_set_up_text.nextInt(array_set_up_text.length - 1);
text3.setText(array_set_up_text[rand_text_set_up]);