必需的EditText Android不工作

时间:2014-10-12 19:03:22

标签: android android-edittext android-studio

我试图创建一个必需的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);
}

1 个答案:

答案 0 :(得分:0)

代码中的逻辑不正确。你有四个这样的检查:

if (required field is empty) {
    contador = false;
} else {
    contador = true
}

如果最后一次检查(评估txtEmail)通过,则contador将为真,即使其他检查未通过。

contador初始化为true并删除所有这四项检查中的else块。如果它们全部通过,contador仍然是true