【问题标题】:Returning random String in Array per button press每次按下按钮返回数组中的随机字符串
【发布时间】:2013-10-30 14:01:29
【问题描述】:

我有以下情况:

我有一个包含 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);

    ...

}

【问题讨论】:

    标签: android arrays string random


    【解决方案1】:

    首先将你的单词数组转换为数组列表

    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);
    

    【讨论】:

    • 不,我只有一个标题,然后是另一个标题,也许是另一个标题,然后是开头的标题。
    • 我没有得到您想要传达的内容,请您详细说明
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 2021-08-01
    相关资源
    最近更新 更多