8

我在 xml 中有 6 个 EditText 字段。单击按钮时,我需要验证所有 EditText 是否都有值或为空。目前我正在逐个检查每个 EditText .. 我怎样才能一次检查所有内容。

编码

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
             }


        }
    });


}
4

3 回答 3

31

使用“for”循环。

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;
}

并使用这样的方法:

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

如果所有字段都不为空,将返回 true。

于 2012-07-24T14:16:04.400 回答
4
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;
            ...

        }
    });
于 2012-07-24T14:17:39.297 回答
0
EditText resultInput = (EditText)findViewById(R.id.result);

if(resultInput.getText().length() > 0)
// Edit Text is Empty
else
// Edit Text is Empty
于 2014-09-10T10:19:32.603 回答