2012-07-24 16 views
6

Ho 6 campi EditText in un xml .. on Clic sul pulsante Devo convalidare se tutti i EditText hanno valori o sono vuoti. Attualmente controllo ogni EditText uno per uno. Come posso controllare tutto in una volta.per verificare se tutti EditText sono vuoti

Codice

private Button BtnSave; 
EditText ev_last_name,ev_first_name,ev_email,ev_password,ev_confirm_password,ev_phone; 
String last_name,first_name,email,password,confirm_password,phone; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.signup); 
    BtnSave=(Button) findViewById(R.id.BtnSave); 
    ev_last_name=(EditText)findViewById(R.id.edit_lname); 
    ev_first_name=(EditText)findViewById(R.id.edit_fname); 
    ev_email=(EditText)findViewById(R.id.edit_email); 
    ev_password=(EditText)findViewById(R.id.edit_passwd); 
    ev_confirm_password=(EditText)findViewById(R.id.edit_cpasswd); 
    ev_phone=(EditText)findViewById(R.id.edit_phone); 



    BtnSave.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      last_name=ev_last_name.getText().toString(); 
      first_name=ev_first_name.getText().toString(); 
      email=ev_email.getText().toString(); 
      password=ev_password.getText().toString(); 
      confirm_password=ev_confirm_password.getText().toString(); 
      phone=ev_phone.getText().toString(); 

      if ((ev_last_name.getText().toString().length() <= 0)) 
      { 
       System.out.println(" The EditText is empty"); 
       //I will use the toast later 
      } 


     } 
    }); 


} 
+0

controllandoli uno per uno sarebbe sempre meglio! – Shobhit

risposta

25

usare un "per" ciclo.

private boolean validate(EditText[] fields){ 
    for(int i = 0; i < fields.length; i++){ 
     EditText currentField = fields[i]; 
     if(currentField.getText().toString().length() <= 0){ 
      return false; 
     } 
    } 
    return true; 
} 

e utilizzare il metodo come questo:

boolean fieldsOK = validate(new EditText[] { ev_last_name, ev_first_name, ev_email }) 

restituisce true se tutti i campi non sono vuoti.

+0

Grazie per la risposta !! –

1
private boolean isEmptyField (EditText editText){ 
    boolean result = editText.getText().toString().length() <= 0; 
    if (result) 
     Toast.makeText(context, "Fill all fielsd!", Toast.LENGTH_SHORT).show(); 
    return result; 
} 

BtnSave.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if (isEmptyField(ev_last_name)) return; 
      if (isEmptyField(ev_first_name)) return; 


      // your logic here; 
      ... 

     } 
    }); 
+0

Grazie per la risposta Georgy :) –

0
EditText resultInput = (EditText)findViewById(R.id.result); 

if(resultInput.getText().length() > 0) 
// Edit Text is Empty 
else 
// Edit Text is Empty 
+0

Spiegare cosa c'è di sbagliato nel codice OP e in che modo risolvere il problema * modificando la domanda. * –

Problemi correlati