2015-10-30 3 views
-1

Я делаю простой пример, например, программу регистрации, где мне требуется условие типа «не равно нулю» или равно. Здесь равно работает, но когда я запускаю эту программу, все тосты показывают после предыдущего тоста.Как я могу остановить показ чистого тоста?

Вот мой код,

save.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if (name.getText().toString().equals("")){ 
       Toast tname = Toast.makeText(SignUp.this, "Please Enter Name", Toast.LENGTH_SHORT); 
       tname.show();} 
      if (email.getText().toString().equals("")){ 
       Toast temail = Toast.makeText(SignUp.this, "Please Enter Email", Toast.LENGTH_SHORT); 
       temail.show();} 
      if (user.getText().toString().equals("")){ 
       Toast tuser = Toast.makeText(SignUp.this, "Please Enter username", Toast.LENGTH_SHORT); 
       tuser.show();} 
      if (pass.getText().toString().equals("")){ 
       Toast tpass = Toast.makeText(SignUp.this, "Please Enter password", Toast.LENGTH_SHORT); 
       tpass.show();} 
      if (pass2.getText().toString().equals("")){ 
       Toast tpass2 = Toast.makeText(SignUp.this, "Please Re-Enter Password", Toast.LENGTH_SHORT); 
       tpass2.show();} 
      if(pass.getText().toString().equals(pass2.getText().toString())) 
      { 
       db.insertData(sname, semail, suser, spass); 

       name.setText(""); 
       email.setText(""); 
       user.setText(""); 
       pass.setText(""); 
       pass2.setText(""); 

       Toast succ = Toast.makeText(SignUp.this, "Data Inserted Successfully", Toast.LENGTH_SHORT); 
       succ.show(); 

      }else 
      { 
       Toast error = Toast.makeText(SignUp.this, "Password didn't match", Toast.LENGTH_SHORT); 
       error.show(); 
      } 

     } 
    }); 
+0

использовать инструкцию else if вместо нескольких операторов if. – activesince93

+0

Я дорогой, я новый – user3091102

ответ

1

Попробуйте это: -

if (!(etEmail.getText().toString().matches(emailPattern))) { 
        Toast.makeText(getApplicationContext(), "Not valid email address", Toast.LENGTH_SHORT).show(); 
        return; 

       } else if (etPassword.getText().toString().trim().length() <= 6) { 
        Toast.makeText(getApplicationContext(), "Password Lenght must be Greater then 6 character", Toast.LENGTH_SHORT).show(); 
        return; 
       } 
0

Либо сделать:

if (name.getText().toString().equals("")){ 
    Toast tname = Toast.makeText(SignUp.this, "Please Enter Name", Toast.LENGTH_SHORT); 
    tname.show();} 
else if (email.getText().toString().equals("")){ 
    Toast temail = Toast.makeText(SignUp.this, "Please Enter Email", Toast.LENGTH_SHORT); 
    temail.show();} 

else является keywork здесь
Первое сообщение об ошибке только будет будет показано.

Или, если вы хотите, чтобы показать все сообщения об ошибках на один раз, вы можете создать одно сообщение из всех, сделать что-то вроде:

StringBuilder text = new StringBuilder(); 
if (name.getText().toString().equals("")){ 
    text.append("Please Enter Name");} 
if (email.getText().toString().equals("")){ 
    text.append("Please Enter Email");} 
// other conditions here 
Toast.makeText(SignUp.this, text.toString(), Toast.LENGTH_SHORT).show(); 

Надеется, что это помогает

0

Попробуйте сделать это:

if (name.getText().toString().equals("")){ 
 
       Toast tname = Toast.makeText(SignUp.this, "Please Enter Name", Toast.LENGTH_SHORT); 
 
       tname.show();} 
 
      if (email.getText().toString().equals("")){ 
 
       Toast temail = Toast.makeText(SignUp.this, "Please Enter Email", Toast.LENGTH_SHORT); 
 
       temail.show();} 
 
      else if (user.getText().toString().equals("")){ 
 
       Toast tuser = Toast.makeText(SignUp.this, "Please Enter username", Toast.LENGTH_SHORT); 
 
       tuser.show();} 
 
      else if (pass.getText().toString().equals("")){ 
 
       Toast tpass = Toast.makeText(SignUp.this, "Please Enter password", Toast.LENGTH_SHORT); 
 
       tpass.show();} 
 
      else if (pass2.getText().toString().equals("")){ 
 
       Toast tpass2 = Toast.makeText(SignUp.this, "Please Re-Enter Password", Toast.LENGTH_SHORT); 
 
       tpass2.show();} 
 
      else if(pass.getText().toString().equals(pass2.getText().toString())) 
 
      { 
 
       db.insertData(sname, semail, suser, spass); 
 

 
       name.setText(""); 
 
       email.setText(""); 
 
       user.setText(""); 
 
       pass.setText(""); 
 
       pass2.setText(""); 
 

 
       Toast succ = Toast.makeText(SignUp.this, "Data Inserted Successfully", Toast.LENGTH_SHORT); 
 
       succ.show(); 
 

 
      }else 
 
      { 
 
       Toast error = Toast.makeText(SignUp.this, "Password didn't match", Toast.LENGTH_SHORT); 
 
       error.show(); 
 
      }

В основном это просто добавление else if, которое будет группировать операторы, а не запускать новую инструкцию if для каждого действия.

Надеюсь, это поможет!

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