2014-10-12 3 views
0

Я пытаюсь создать требуемый EditText, я пытаюсь использовать его с булевым, но он не работает. Ни setError не исчезает, когда я печатаю что-то на своем EditText, только на txtEdat, txtTelefon, txtEmail ... И логическое кажется, что это бесполезно для этого кода, потому что узнайте только txtEmail (последний). .Обязательно EditText Android Не работает

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

Только совет: вы можете использовать 'намерение' вместо' iIntent'. – Simas

+0

Я правильно знаю, но я думаю, что это ничего не меняет в моей проблеме ... –

+0

Вы хотите, чтобы все поля были необходимы (не пустые)? –

ответ

0

Ошибка в коде отсутствует. У вас есть четыре проверки, как это:

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

Если последняя проверка (который оценивает txtEmail) проходит, то contador будет справедливо, даже если другие проверки не проходят.

Инициализировать contador до true и удалить блоки else во всех четырех этих проверках. Если они все пройдут, contador по-прежнему будет true.

+0

У меня плохой ... Я благодарен за вашу помощь, последнее, что я не знаю, как исправить, это setError только исчезает на Edat, Telefon и E-mail, на Nom и Cognom все еще с Pop- ... любое решение? –

+0

Всплывающее окно исчезает, когда вы вызываете 'setError (null)'. Вы это делаете? – Karakuri

+0

Нет, я имею в виду, когда я пытаюсь отправить форму с пустыми полями, появляется много всплывающих окон, это то, что я хочу, но когда я начинаю вводить ее, она исчезает только в Edat, Email, Telefon, мне интересно, если я use "android: inputType =" textCapWords "и" android: inputType = "textCapSentence" он не исчезает ... –

Смежные вопросы