我有4个带答案的按钮,想要消除其中一个按钮。我有一种随机选择按钮的方法,我使用if语句来确定所选按钮是否实际上是实际答案,因为我不想删除该按钮。我遇到的问题是该按钮被选中的概率为1/4,因此如果选择它,我希望该过程重新开始,直到if条件为假。
private int[] myInt;
public static final Random rgenerator = new Random();
public void onClickEliminate(View view) {
Resources res = getResources();
myInt = res.getIntArray(R.array.ansArray);
int ans = myInt[rgenerator.nextInt(myInt.length)];
Button button = (Button) findViewById(ans);
CharSequence message = button.getText().toString();
TextView textview = (TextView) findViewById(R.id.correct);
CharSequence answer = textview.getText().toString();
if (message.equals(answer)) {
// Here I need the above process to run again
Log.i(LOGTAG, "Keep this button");
} else {
button.setVisibility(View.GONE);
Log.i(LOGTAG, "Button gone");
}
}
我意识到这需要在后台线程上运行,但我现在只关注基本功能。有没有人可以提供帮助。亲切的问候,德里克
ps:我已经尝试过使用循环,但它们无效或无限。我认为通过使用Random,“message”的值应该在某个阶段发生变化。
答案 0 :(得分:0)
试试这个:
boolean myprocess = true;
while(myprocess){
if (message.equals(answer)) {
// Here I need the above process to run again
Log.i(LOGTAG, "Keep this button");
} else {
myprocess = false;
button.setVisibility(View.GONE);
Log.i(LOGTAG, "Button gone");
}
}