我试图创建一个必需的EditText,我尝试使用布尔值,但它不起作用。 当我在EditText上输入内容时,setError不会消失,只能在txtEdat,txtTelefon,txtEmail上输入... 布尔似乎对此代码没用,因为只识别txtEmail(最后一个)...
boolean contador;
contador = false;
//Creem el intent
Intent iIntent = new Intent(MyActivity.this, FormEnviado.class);
//Creem un bundle que es on anira la informació que es pasarà a la altre activity
Bundle bBundle = new Bundle();
// si isChecked el valor es True
bBundle.putBoolean("cbValidator", cbDades.isChecked());
// En cada if mirem si hi ha algun camp buit
bBundle.putString("cognom", txtCognom.getText().toString());
if(txtCognom.getText().toString().length()==0)
{
contador = false;
txtCognom.setError("Aquet camp no pot estar buit");
}
else
{
contador = true;
}
bBundle.putString("nom", txtNom.getText().toString());
if(txtNom.getText().toString().length()==0)
{
contador = false;
txtNom.setError("Aquet camp no pot estar buit");
}
else
{
contador = true;
}
bBundle.putString("edat", txtEdat.getText().toString());
if(txtEdat.getText().toString().length()==0)
{
contador = false;
txtEdat.setError("Aquet camp no pot estar buit");
}
else
{
contador = true;
}
bBundle.putString("telefon", txtTelefon.getText().toString());
if(txtTelefon.getText().toString().length()==0)
{
contador = false;
txtTelefon.setError("Aquet camp no pot estar buit");
}
else
{
contador = true;
}
bBundle.putString("email", txtEmail.getText().toString());
if(txtEmail.getText().toString().length()==0)
{
contador = false;
txtEmail.setError("Aquet camp no pot estar buit");
}
else
{
contador = true;
}
// Toast i no ens deixarà enviar-lo
if (!contador)
{
Toast.makeText(getApplicationContext(), "Has de omplir el formulair per enviar-lo", Toast.LENGTH_SHORT).show();
}
// Formulario omplert
else
{
//Afegim la informació de bundle al intent
iIntent.putExtras(bBundle);
//Inicialitzem el intent
startActivity(iIntent);
}
答案 0 :(得分:0)
代码中的逻辑不正确。你有四个这样的检查:
if (required field is empty) {
contador = false;
} else {
contador = true
}
如果最后一次检查(评估txtEmail
)通过,则contador
将为真,即使其他检查未通过。
将contador
初始化为true
并删除所有这四项检查中的else
块。如果它们全部通过,contador
仍然是true
。