【问题标题】:Random array from resource Android来自资源 Android 的随机数组
【发布时间】:2015-03-03 16:23:33
【问题描述】:

如何使用以下 xml 从资源文件中获取 java 中的随机问题:

<array name="question1">
    <item name="id">1</item>
    <item name="question">Question 1?</item>
    <item>@array/possible_answers1</item>
    <item name="correct_answer">1</item>
</array>
    <string-array name="possible_answers1">
        <item>Answer1</item>
        <item>Answer2</item>
        <item>Answer3</item>
        <item>Answer4</item>
    </string-array>

<array name="question2">
    <item name="id">2</item>
    <item name="question">Question 2?</item>
    <item>@array/possible_answers2</item>
    <item name="correct_answer">3</item>
</array>
    <string-array name="possible_answers2">
        <item>Answer1</item>
        <item>Answer2</item>
        <item>Answer3</item>
        <item>Answer4</item>
    </string-array>

为了得到我使用的java中的第一个问题:

String[] str_quest = res.getStringArray(R.array.question1);
str_question = str_quest[1];

但是我怎样才能得到随机问题? 感谢阅读!

【问题讨论】:

标签: java android arrays xml


【解决方案1】:

这将起作用:

Random rand = new Random();
int numberOfQuestion = 3;//For example
int randomQuestionID = this.getResources().getIdentifier("question"+rand.nextInt(numberOfQuestion), "array", this.getPackageName());
str_question = res.getStringArray(randomQuestionID)[1];

【讨论】:

  • 就是这样。谢谢。
【解决方案2】:

创建一个包含所有id的问题数组的整数数组:

int[] question_arr=new {R.array.question1,R.array.question2,...};
Random randnum = new Random();

从 question_arr 中获取随机数组 id:

int question_index=question_arr[randnum.nextInt(question_arr.length)];
String[] str_quest = res.getStringArray(question_index);

【讨论】:

    猜你喜欢
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    相关资源
    最近更新 更多