Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无重复的Android随机活动_Java_Android_Android Activity - Fatal编程技术网

Java 无重复的Android随机活动

Java 无重复的Android随机活动,java,android,android-activity,Java,Android,Android Activity,我正在开发一个问答游戏,在游戏中,我必须在回答问题时进行随机活动,以避免以相同的顺序回答问题。我通过使用开关 然而,问题是我可能会回到我已经回答过的问题,所以我现在必须编写一些代码,以避免玩家通过随机生成器转到前面的问题 到目前为止,我已经做到了这一点 Random rand = new Random(); int number = rand.nextInt(10); Intent intent = null; switch(number){ case

我正在开发一个问答游戏,在游戏中,我必须在回答问题时进行随机活动,以避免以相同的顺序回答问题。我通过使用
开关

然而,问题是我可能会回到我已经回答过的问题,所以我现在必须编写一些代码,以避免玩家通过随机生成器转到前面的问题

到目前为止,我已经做到了这一点

  Random rand = new Random();
  int number = rand.nextInt(10);
  Intent intent = null;

       switch(number){
       case 0: intent = new Intent(MainActivity.this, Question001.class);
       break;
       case 1: intent = new Intent(MainActivity.this, Question002.class);
       break;

       //etc....
       }
       startActivity(intent);           
这会在点击按钮时随机出现活动,但我想禁用以前访问过的问题。这意味着,如果一个人回答了课堂问题002中的问题,他一定不能(永远也永远不会)再次得到这个问题,因为这将导致他从以前的问题中获得额外的分数。我如何在点击按钮时只随机获取一次问题,这样它们就不会再次出现?我希望我的问题被理解

每个问题都存储在自己的类中(问题001、问题002……问题009)

使用

ArrayList<Integer> number = new ArrayList<Integer>();
for (int i = 1; i <= 10; ++i) number.add(i);
Collections.shuffle(number);
ArrayList number=new ArrayList();
对于(int i=1;i,请遵循以下步骤:

  • 创建一个ArrayList(或一个简单的列表)并将所有问题添加到其中。记住,这只包含用于洗牌的问题。不要将其用于任何其他目的
  • 然后使用集合进行洗牌。洗牌(问题)
  • 问上面的问题(问题.get(0))
  • 回答此问题后,将其从列表中删除。这将确保它不再显示
  • 重复步骤2-5,直到列表大小大于零

  • 如果不清楚,请告诉我。

    您真的确定每个问题都需要一个活动吗?我真的会尝试采取另一种方法,因为这会给您带来真正的麻烦。尝试进行一个活动并更新视图,将问题存储在数据库中,以便您可以轻松添加新问题Questions@A.S.正确。使用相同的
    Activity
    对于所有问题,只需更改视图的内容(例如设置文本)当您想切换问题时。这也将允许您将以前提出的问题存储在
    活动中
    ,并使用它们选择一个独特的问题。感谢您的回复。很抱歉,我的回复这么晚,我一直很忙。另外,我认为您的建议更好,但由于我是初学者,这对我来说很难在一个活动中完成所有这些。所以我在寻找,我如何才能做到这一点?谢谢你的回答,我很感激,尽管我是一个初学者,不知道如何做到这一点。我担心这不会有帮助。你如何确保不重复一次?我非常感谢你的回答,很抱歉我在很长一段时间后才回复;这这是因为我一直很忙,所以我也在想我应该如何避免重复问题。但对于像我这样的初学者来说,这看起来很有启发作用。所以你的意思是类似字符串[]问题={问题1,问题2….}这是第一点。第二点,我应该简单地输入Collections.shuffle(问题);虽然我不理解3和4(我对前两个答案都正确吗??),但很抱歉回答晚了,因为我一直很忙