我如何从我的Sqlite数据库随机显示组的内容给用户



大家好,我正在构建一个android测试应用程序。我有我所有必要的活动(结果活动,问题活动等),我甚至有我的Sqlite数据库大约50个问题。对于每一款游戏或每一段游戏,玩家都会被告知10个问题,并得到答案。我想要实现的是每次用户打开应用程序时,我想要一组不同的10个问题应该显示给用户,因为我有多达50个问题例如,在每次启动应用程序时说问题1-10可以显示,在下一次启动11- 20,并按此顺序。如果数据库问题已用完,它可以再次重复该顺序。我想要一组说10个问题的用户在每次启动。这是一个离线应用程序。请提供任何帮助(详细将不胜感激)

可以在表"QuestionAsked"中维护布尔列。当询问一组问题或询问并尝试了一组问题(无论您想保留哪种逻辑)时,将布尔值更新为true。下次,当你去取问题时,用QuestionAsked=false随机分配问题。这将帮助你获得独特的问题。此外,在询问完所有问题或没有足够的问题需要查询时,您可以重置该列。

通过此代码,您可以将所有50个问题放在随机位置。现在,您必须根据其唯一id在页面中显示问题。要获得5页50个不同的问题,使用HashMap数组。好问题。祝你一切顺利。

public void generateNumbers() {
        ArrayList<Integer> numbers = new ArrayList<Integer>();
        Random randomnumber = new Random();
        for (int i = 0; i < 49; i++) {
            int random = randomnumber.nextInt(49);
            randomnumber.nextInt(49);
            if (!numbers.contains(random)) {//Set Non Repeatong Value
                numbers.add(random);
            }
        }//After this execution size may be less then 50
        for (int i = 0; i < 50; i++) {
            if (numbers.size() != 50) {
                if (!numbers.contains(i)) {
                    numbers.add(i);
                }
            }
        }// Size will be 50 all 50 questions are in array list
        Log.d("MainActivity", "Numbers are " + convertToString(numbers) + " Size " + numbers.size());
    }

相关内容

最新更新