2017-03-22 3 views
-1

Ich habe eine Methode für die Registrierung Benutzer für backendless schreiben. Mit ausgefüllten Textfeldern kann ich Benutzer registrieren. Mein Problem ist, wenn ich auf Knopf mit leeren Textfeldern app stürze, aber ich schrieb eine if-Anweisung für leere Textfelder überprüfen und einen Toast zeigen.App stürzt ab, wenn Sie mit leeren Textfeldern klicken

public void RegisterButtonPressed(View view) { 

    if(email.getText() == null || password.getText() == null || username.getText() == null){ 

     Toast.makeText(this, "Every Fileds should be filled", Toast.LENGTH_SHORT).show(); 

    } else { 

     if(email.getText() != null && password.getText() != null && username.getText() != null) { 

      final String emailS = email.getText().toString(); 
      final String passwordS = password.getText().toString(); 
      String usernameS = username.getText().toString(); 

      BackendlessUser user = new BackendlessUser(); 

      user.setEmail(emailS); 
      user.setPassword(passwordS); 
      user.setProperty("name",usernameS); 
      user.setProperty("Avatar",""); 

      Backendless.UserService.register(user, new AsyncCallback<BackendlessUser>() { 
       @Override 
       public void handleResponse(BackendlessUser backendlessUser) { 

        Toast.makeText(RegisterActivity.this, "User Registration Successfull", Toast.LENGTH_SHORT).show(); 

        Backendless.UserService.login(emailS, passwordS, new AsyncCallback<BackendlessUser>() { 
         @Override 
         public void handleResponse(BackendlessUser backendlessUser) { 

          Toast.makeText(RegisterActivity.this, "Logged", Toast.LENGTH_SHORT).show(); 
         } 

         @Override 
         public void handleFault(BackendlessFault backendlessFault) { 

          Toast.makeText(RegisterActivity.this, "User Login Unsuccessfull: " + backendlessFault.getDetail(), Toast.LENGTH_SHORT).show(); 

         } 
        }); 

       } 

       @Override 
       public void handleFault(BackendlessFault backendlessFault) { 

        Toast.makeText(RegisterActivity.this, "User Registration Unsuccesful: " + backendlessFault.getDetail(), Toast.LENGTH_SHORT).show(); 

       } 
      }); 

     } 

    } 
} 

error log

Antwort

0

Sie mit

if(TextUtils.isEmpty(email.getText())) 

statt

if (email.getText() == null) 

Aus meiner Erfahrung, die getText() wurde nicht null zurück, wenn es leer überprüfen sollten, aber leere Saite aka ""

TextUtils.isEmpty() jedoch wird, überprüfen Sie beide null und „“ als leere Zeichenfolge

+0

Jetzt funktioniert es gut. Danke! –

+0

@OliverCarl: Ihre Begrüßung –

0

Sie überprüfen nur, wenn die Zeichenfolge null ist. Wenn es leer ist, wird Ihre if Anweisung dies nicht abfangen und trotzdem einen Absturz verursachen. Sie sollten auch nach einer leeren Zeichenfolge suchen.

if(email.getText() == null || email.getText().length() == 0 || 
password.getText() == null || password.getText.length() == 0 || 
username.getText() == null || username.getText.length() == 0){ 

    Toast.makeText(this, "Every Fileds should be filled", Toast.LENGTH_SHORT).show(); 
} 
Verwandte Themen