繁体   English   中英

如何在JAVA Android上避免此错误

[英]How can I avoid this error with while JAVA Android

我正在设计一个应用程序,它的作用是一种“秘密朋友”,我显然告诉该应用程序不要重复与所选人员一起玩的人,请参见:

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 ),我该如何解决呢?

你应该做的是

  1. 首先从lista2移除人员(spinner1.selectedItem
  2. 然后随机获得

这样,您无需使用do-while循环

先检查一下

 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()));
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM