每按一次按数组返回随机字符串

时间:2013-10-30 14:01:30

标签: android arrays string random

我有以下情况:

我有一个包含245个String项的数组。现在我有一个Button,在点击时会从数组中随机String。但是接着,我会在一个字符串之后重复,之前的字符串就会出现。如何解决?

以下是代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button btn1 = (Button)findViewById(R.id.button1);
    btn1.setOnClickListener(this);

    Resources res = getResources();

    titles = res.getStringArray(R.array.title_array); 

    String q = titles[rgenerator.nextInt(titles.length)];

    TextView tv = (TextView) findViewById(R.id.textView1);
    tv.setText(q);

    ...

}

1 个答案:

答案 0 :(得分:1)

首先将您的单词数组转换为arraylist

ArrayList<String> wordsList = new ArrayList<String>(Arrays.asList(titles));

然后创建另一个列表,其中包含已打印的单词

ArrayList<String> usedList = new ArrayList<String>();

然后,当你得到一个单词时,只需将其从wordlist中删除并将其移至usedlist

String s = wordsList.get(rgenerator.nextInt(wordsList.size()));
wordsList.remove(s);
usedList.add(s);