在继续执行语句之前检查for循环是否已完成
问题描述:
这里遇到了一些问题。我创建了一个EditText数组,它工作正常。现在,当EditText的其中一个为空时,我收到错误消息。 这里是我的代码:在继续执行语句之前检查for循环是否已完成
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在循环完成后显示有什么方法吗?
答
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语句敬酒一次,退出循环后,并且只有当其他声明被称为,所以只有当“编辑文本不为空”
答
地方出来的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();
}
答
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();
先生我想我可以得到你的答案问题,因为两个吐司会显示。 – Androyds 2012-08-14 02:28:27
请参阅编辑答案,它将只显示一个 – 2012-08-14 02:28:57
在那里捕捉;)想知道你是否要像我一样抛出一个布尔值。 – WIllJBD 2012-08-14 02:30:05