我正在设计一个应用程序,它做的是一种秘密的朋友",我告诉应用程序显然不要重复与所选人员一起玩的人,请看:
if (lista2.isEmpty())
{
(Toast.makeText(getApplicationContext(), this.getString(R.string.nospace), Toast.LENGTH_LONG)).show();
return;
} else {
Random random = new Random();
int start2;
do
{
start2 = random.nextInt(lista2.size() - 0) + 0;
}
while (lista2.get(start2).equals(spinner1.getSelectedItem().toString()));
}
有时候,应用会崩溃,因为lista2
上只有同一个人(spinner1.selectedItem
)没有其他项目,我该如何解决?
答案 0 :(得分:0)
你应该做的是
这样,您无需使用do-while循环
答案 1 :(得分:0)
先进行检查
if (lista2.isEmpty())
{
(Toast.makeText(getApplicationContext(), this.getString(R.string.nospace), Toast.LENGTH_LONG)).show();
return;
} else {
//do a check here
for(int i = 0; i < lista2.size(); i++){
if(!lista2.get(start2).equals(spinner1.getSelectedItem().toString())){
break;
}
if(i == lista2.size() - 1){
Toast.makeText(getApplicationContext(), this.getString(R.string.nospace), Toast.LENGTH_LONG)).show();
return;
}
}
Random random = new Random();
int start2;
do
{
start2 = random.nextInt(lista2.size() - 0) + 0;
}
while (lista2.get(start2).equals(spinner1.getSelectedItem().toString()));
}