2013-08-01 5 views
-4

Я разрабатываю функцию регистрации, и мне нужно выполнить некоторую проверку перед регистрацией. Поэтому, когда я проверяю, что все editText null, это просто не работает. Я не мог понять, почему.Почему editext getText ничего не возвращает?

здесь код

public class RegisterActivity extends Activity implements View.OnClickListener { 
    private AlertDialogManager alert = new AlertDialogManager(); 
    private EditText mFullName; 
    private EditText mEmail; 
    private EditText mPassword; 
    private EditText mPasswordAgain; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.register); 

     init(); 
    } 

    private void init() { 

     findViewById(R.id.registerButton).setOnClickListener(this); 
     mFullName = (EditText)findViewById(R.id.registerFullName); 
     mEmail = (EditText)findViewById(R.id.registerEmail); 
     mPassword = (EditText)findViewById(R.id.registerPassword); 
     mPasswordAgain = (EditText)findViewById(R.id.registerPasswordRetype); 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()){ 
      case R.id.registerButton: 

       System.out.println("fullname="+mFullName.getText()); 
       System.out.println("email="+mEmail.getText()); 
       System.out.println("emailString="+mEmail.getText().toString()); 

       if (mFullName.getText().toString().equals("") && mEmail.getText().toString().equals("") && mPassword.getText().toString().equals("") && mPasswordAgain.getText().toString().equals("")){ 
        if (Utils.isValidEmail(mEmail.getText().toString())){ 
         if (Utils.checkPassWordAndConfirmPassword(mPassword.getText().toString(), mPasswordAgain.getText().toString())){ 
          register(); 
         } else { 
          alert.showAlertDialog(RegisterActivity.this, "Error", 
            "Password doesn't match", false); 
         } 
        } else { 
         alert.showAlertDialog(RegisterActivity.this, "Error", 
           "Wrong email", false); 
        } 
       } else { 
        alert.showAlertDialog(RegisterActivity.this, "Error", 
          "All fields are required", false); 
       } 
       break; 
     } 
    } 

}

Вы видите там System.out.println при нажатии на кнопку. Я также добавил, что здесь, но

08-01 11:34:46.830: INFO/System.out(10434): fullname= 
08-01 11:34:46.830: INFO/System.out(10434): email= 
08-01 11:34:46.830: INFO/System.out(10434): emailString= 

Улыбка getText не печатает null, если он пуст?

+1

вы должны использовать gettext(). Tostring(). –

+0

Не пробовал, он не работает – bauer9664

+0

Почему вам нужно печатать null? Вы можете сделать так: getText(). ToString.length()> = 1 или if (getText(). ToString()! = "") -> Это, если пустой текст в edittext. Вы первый человек, ожидающий получить нуль! – Charan

ответ

-2

После @Pankaj Kumar ответы я пришел к выводу ...

if (TextUtils.isEmpty(mFullName.getText()) && 
       TextUtils.isEmpty(mEmail.getText()) && 
       TextUtils.isEmpty(mPassword.getText()) && 
       TextUtils.isEmpty(mPasswordAgain.getText())) { 

alert.showAlertDialog(RegisterActivity.this, "Error", 
          "All fields are required", false); 
} else { 
//do another validation 
} 

Я уверен, что будет работать.

+0

oo Спасибо, что я жду. – bauer9664

+0

gud произведение! но все же я смотрю, в чем проблема в моем ответе ..: D –

0

Вот как я могу проверить, было ли поле EditText пустым.

public String checkInput(){ 
    email= username.getText().toString(); 
    if(email.equals("")){ 
     System.out.println("No email"); 
    } 
} 

Это прекрасно работает для меня.

0

Существует на самом деле логическая ошибка в исходном коде:

if (mFullName.getText().toString().equals("") && mEmail.getText().toString().equals("") && mPassword.getText().toString().equals("") && mPasswordAgain.getText().toString().equals("")){ 

Этот код, если верно означает, что все текстовые поля были пусты, а пользователь должен быть показан диалог предупреждения здесь о "All fields are required".

, тогда как в вашем текущем коде вы показывали это предупреждение в части кода else. Что логически неправильно.

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