如何确保按钮功能正确执行
how to make sure a button function is executed properly
我想制作一个允许转到随机页面的按钮,但我对它的逻辑有问题,因为我看到了漏洞,但我不知道如何解决它们。或者我应该使用不同的方法吗?代码如下。
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);
}
}
}
});
漏洞就是...如果功能不满足条件,用户将需要多次按下按钮
首先将您的意图添加到 ArrayList<Intent>
:
ArrayList<Intent> pages = new ArrayList();
pages.add(qn1);
pages.add(qn2);
pages.add(qn3);
之后在列表中的 onClick
和 get
页面中的 0 和 list.size()
之间生成随机 int
:
int index = new Random().nextInt(pages.size());
Intent page = pages.get(index);
startActivity(page);
最后通过调用从列表中删除该页面:
pages.remove(index);
只是不要忘记在 onClick
的第一行检查 ArrayList
是否为空:
if(pages.size == 0) return;
希望有用!
我想制作一个允许转到随机页面的按钮,但我对它的逻辑有问题,因为我看到了漏洞,但我不知道如何解决它们。或者我应该使用不同的方法吗?代码如下。
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);
}
}
}
});
漏洞就是...如果功能不满足条件,用户将需要多次按下按钮
首先将您的意图添加到 ArrayList<Intent>
:
ArrayList<Intent> pages = new ArrayList();
pages.add(qn1);
pages.add(qn2);
pages.add(qn3);
之后在列表中的 onClick
和 get
页面中的 0 和 list.size()
之间生成随机 int
:
int index = new Random().nextInt(pages.size());
Intent page = pages.get(index);
startActivity(page);
最后通过调用从列表中删除该页面:
pages.remove(index);
只是不要忘记在 onClick
的第一行检查 ArrayList
是否为空:
if(pages.size == 0) return;
希望有用!