java - 如何检查有多少 EditText 为空?

标签 java android

我有 10 个 editText,我从中获取文本,如下所示:

EditText naamField1 = (EditText) findViewById(R.id.naam1);
        EditText naamField2 = (EditText) findViewById(R.id.naam2);
        EditText naamField3 = (EditText) findViewById(R.id.naam3);
        EditText naamField4 = (EditText) findViewById(R.id.naam4);
        EditText naamField5 = (EditText) findViewById(R.id.naam5);
        EditText naamField6 = (EditText) findViewById(R.id.naam6);
        EditText naamField7 = (EditText) findViewById(R.id.naam7);
        EditText naamField8 = (EditText) findViewById(R.id.naam8);
        EditText naamField9 = (EditText) findViewById(R.id.naam9);
        EditText naamField10 = (EditText) findViewById(R.id.naam10);
        speler[1] = naamField1.getText().toString();
        speler[2] = naamField2.getText().toString();
        speler[3] = naamField3.getText().toString();
        speler[4] = naamField4.getText().toString();
        speler[5] = naamField5.getText().toString();
        speler[6] = naamField6.getText().toString();
        speler[7] = naamField7.getText().toString();
        speler[8] = naamField8.getText().toString();
        speler[9] = naamField9.getText().toString();
        speler[10] = naamField10.getText().toString();

承认,这不是最漂亮的代码,但是我如何检查这些字符串、edittexts中有多少是空的? 到目前为止我已经尝试过了

for (int i = 1; i==10; i++)
        {
            if (speler[i] == "")
            {
                numberOfPlayers = i--;
                break;
            }
        }

for (int i = 1; i==10; i++)
        {
            if (!TextUtils.isEmpty(speler[i]))
            {
                numberOfPlayers++;
            }
        }

我在代码开头将 numberOfPlayers 声明为 0。

所以,是的,如果有人可以帮助我或为我指明正确的方向,那就太好了。

最佳答案

如前所述,您从错误的索引开始,因为Java中的数组的基数为0,并且您的循环是错误的。另外,您比较字符串是错误的。应该是这样的

for (int i =0; i<10; i++)
    {
        if (speler[i].equals(""))
        {
            numberOfPlayers = i--;
            break;
        }
    }

按照您现有的方式进行操作可能更有效、更安全

for (int i = 1; i<speler.length; i++)
    {
        if ("".equals(speler[i]))
        {
            numberOfPlayers = i--;
            break;
        }
    }

这样,如果数组长度发生变化,您就不必不断调整 for 循环,因为它现在不是硬编码的。它还可以通过切换 .equals() 语句来防止 NPE

关于java - 如何检查有多少 EditText 为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18148896/

相关文章:

java - 我们可以减少从 ArrayList 准备 Java HashSet 的时间复杂度 O(n) 吗?

java - Iterable 实现中的 Lambda 表达式

android - 从 refs.xml 引用默认布局

android - 错误decodin签名JWT认证Android

android - 在字符串资源中强制使用空格

java - 如何在自定义路径参数类中获取http headers?

java - JPA使用@AttributeOverride来继承映射

java - 如何在片段中使用 findViewById?

android - 在同一气泡中显示来自用户的连续聊天

android - XML Android 权限列表完整