2016-04-28 19 views
0

Wenn ich auf mich auf die Schaltfläche Validation Senden wird nicht verarbeitet ist es ein Fehler? Wenn Bearbeiten von Text leer ist wird es geht zur nächsten Aktivität Validierung verarbeitet wird, nicht wahr? Kann man lösen diesesProbleme bei der Validierung

public void submitDetails(View v) 
{ 
    et = (EditText)findViewById(R.id.first); 
    et1 = (EditText)findViewById(R.id.last); 
    et2 = (EditText)findViewById(R.id.email); 
    et3 = (EditText)findViewById(R.id.phone); 
    et4 = (EditText)findViewById(R.id.dateofbirth); 
    et5 = (EditText)findViewById(R.id.Address); 
    btn = (Button)findViewById(R.id.submit); 
    String first = et.getText().toString(); 
    String last = et1.getText().toString(); 
    String email = et2.getText().toString(); 
    String mobile = et3.getText().toString(); 
    String birth = et4.getText().toString(); 
    String address = et5.getText().toString(); 
    String emailpatern = "[a-zA-Z0-9._-][email protected][a-z]+\\.+[a-z]+"; 

    if (et.equals("")) 
     et.setError("pls enter name"); 
    else if (et2.equals("")&&!et2.equals(emailpatern)) 
     et2.setError("Pls Enter Valid Email"); 
    else if(et3.equals("")) 
     et3.setError("Enter Mobile Number"); 
    else if (et4.equals("")) 
     et4.setError("Enter Date of Birth"); 
    else if (et5.equals("")) 
     et5.setError("fil the fileds"); 
    else 
     { 
       Intent i = new Intent(MainActivity.this,Result.class); 
       i.putExtra("k1",first); 
       i.putExtra("k2",last); 
       i.putExtra("k3",email); 
       i.putExtra("k4",mobile); 
       i.putExtra("k5",birth); 
       i.putExtra("k6",address); 
       startActivity(i); 
     } 
} 
+0

Es sieht so aus, als würden Sie das EditText-Objekt selbst anstelle des Textes vergleichen. Sie haben viele Variablen, die den Text bekommen, warum nicht diese verwenden? Zum Beispiel, anstelle von 'if (et.equals', verwenden Sie' if (first.equals'? – Austin

Antwort

0

Sie überprüfen, ob die Referenzen des EditText gleich einer leeren Zeichenfolge "" sind und true nie zurückgegeben wird.

ersetzen:

et.equals("") 

von

et.getText().trim().equals("") 

Sie müssen für alle EditText das gleiche tun und die Variablen verwenden, können Sie mit dem Inhalt des EditText haben ..

Ihr Code sollte folgendermaßen aussehen:

if (first.trim().equals("")) 
    et.setError("pls enter name"); 
else if (last.trim().equals("")&&!email.trim().equals(emailpatern)) 
    // ... 
else{ 
    Intent i = new Intent(MainActivity.this,Result.class); 
    i.putExtra("k1",first); 
    i.putExtra("k2",last); 
    i.putExtra("k3",email); 
    i.putExtra("k4",mobile); 
    i.putExtra("k5",birth); 
    i.putExtra("k6",address); 
    startActivity(i); 
} 
Verwandte Themen