我有 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/