这里有一些问题。我创建了一个EditText数组,它工作正常。现在,当其中一个EditText为空时,我收到一个错误。 这是我的代码:
int[] textIDs = new int[] {R.id.etFirstName, R.id.etLastName, R.id.etEmail, R.id.etAddress, R.id.etCity, R.id.etRegion, R.id.etMobile, R.id.etLandLine, R.id.etYear, R.id.etMonth, R.id.etDay };
for(int j=0; j<textIDs.length; j++) {
EditText editText = (EditText) findViewById(textIDs[j]);
if(editText.getText().toString().trim().equals(""))
{
// editText is empty
Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT).show();
break;
}
else
{
// editText is not empty
Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show();
}
使用此代码的主要问题是循环继续执行此代码的功能
Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show();
在每个循环中继续显示。在循环完成后,这个Toast有没有显示的方式?
答案 0 :(得分:1)
将它放在for循环中..
boolean isNotEmpty = false;
for(int j=0; j<textIDs.length; j++) {
EditText editText = (EditText) findViewById(textIDs[j]);
if(editText.getText().toString().trim().equals(""))
{
// editText is empty
Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT).show();
isNotEmpty = false; // Marking as Empty
break;
}
else
{
// editText is not empty
isNotEmpty = true // Marking as Non-Empty
}
}
if (isNotEmpty){
Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show();
}
答案 1 :(得分:0)
boolean doShowToast = false;
int[] textIDs = new int[] {R.id.etFirstName, R.id.etLastName, R.id.etEmail, R.id.etAddress, R.id.etCity, R.id.etRegion, R.id.etMobile, R.id.etLandLine, R.id.etYear, R.id.etMonth, R.id.etDay };
for(int j=0; j<textIDs.length; j++) {
EditText editText = (EditText) findViewById(textIDs[j]);
if(editText.getText().toString().trim().equals(""))
{// editText is empty
Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT).show();
break;
}
else
{
// editText is not empty
doShowToast = true;
}
}
if(doShowToast){
Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show();
}
通过使用布尔值,你只会在循环退出后显示一次else语句的toast,并且只有在调用else语句时才会显示,所以只有“editText不为空”
答案 2 :(得分:0)
int[] textIDs = new int[] {R.id.etFirstName, R.id.etLastName, R.id.etEmail, R.id.etAddress, R.id.etCity, R.id.etRegion, R.id.etMobile, R.id.etLandLine, R.id.etYear, R.id.etMonth, R.id.etDay };
Toast t;
for(int j=0; j<textIDs.length; j++) {
EditText editText = (EditText) findViewById(textIDs[j]);
if(editText.getText().toString().trim().equals(""))
{// editText is empty
t = Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT);
break;
}
else
{
// editText is not empty
static Toast toast = Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT);
t = toast;
}
}
t.show();