如何确保按钮功能正确执行

时间:2018-10-14 04:21:42

标签: android android-view

我想制作一个可以转到随机页面的按钮,但是我在逻辑上遇到了麻烦,因为我可以看到漏洞,但我不知道该如何解决。还是我应该使用其他方法?代码如下。

qn3_nextBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
                for (int i=1; i<4; i++) {
                    int rng = new Random().nextInt(2) + 1;
                    if (rng == i && !qns.contains(1)) {
                        qns.add(1);
                        Intent qn1 = new Intent(question3.this, question1.class);
                        qn1.putExtra("name", name);
                        qn1.putIntegerArrayListExtra("questions", qns);
                        startActivity(qn1);
                    } else if (rng == i && !qns.contains(2)) {
                        qns.add(2);
                        Intent qn2 = new Intent(question3.this, question2.class);
                        qn2.putExtra("name", name);
                        qn2.putIntegerArrayListExtra("questions", qns);
                        startActivity(qn2);
                    } else if (rng == i && !qns.contains(3)) {
                        qns.add(3);
                        Intent qn3 = new Intent(question3.this, question3.class);
                        qn3.putExtra("name", name);
                        qn3.putIntegerArrayListExtra("questions", qns);
                        startActivity(qn3);
                    }
                }
        }
    });

漏洞,即如果该功能不符合条件,则用户需要多次按下按钮

1 个答案:

答案 0 :(得分:1)

首先将您的意图添加到ArrayList<Intent>中:

ArrayList<Intent> pages = new ArrayList();
pages.add(qn1);
pages.add(qn2);
pages.add(qn3);

之后,在列表中该页面的intlist.size()内的0和onClick之间生成一个随机的get

int index = new Random().nextInt(pages.size());
Intent page = pages.get(index);
startActivity(page);

最后通过调用以下方法从列表中删除该页面:

pages.remove(index);

请不要忘记在ArrayList的第一行中检查onClick是否为空:

if(pages.size == 0) return;

我希望它能起作用!