2014-09-26 38 views
0

嗨在我的应用程序我有用户名和密码和登录button.click登录提交按钮没有检查验证和空字段也移动到下一个活动。没有检查验证移动到在android中的下一个活动

我想检查是否需要用户名,需要输入密码点击登录按钮才能移动到下一个活动。

Login.java

public class Login extends Activity { 
    Button login; 
    private static final Pattern USERNAME_PATTERN = Pattern 
      .compile("[a-zA-Z0-9]{1,250}"); 
    private static final Pattern PASSWORD_PATTERN = Pattern 
      .compile("[a-zA-Z0-9+_.]{4,16}"); 
    EditText usname,pword; 
    TextView tv; 
    String result=null; 
    HttpPost httppost; 
    StringBuffer buffer; 
    HttpResponse response; 
    HttpClient httpclient; 
    CheckBox mCbShowPwd; 
    List<NameValuePair> nameValuePairs; 
    ProgressDialog dialog = null; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 

     login = (Button)findViewById(R.id.login); 
     usname = (EditText)findViewById(R.id.username); 
     pword= (EditText)findViewById(R.id.password); 
     mCbShowPwd = (CheckBox) findViewById(R.id.cbShowPwd); 
     mCbShowPwd.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       // checkbox status is changed from uncheck to checked. 
       if (!isChecked) { 
         // show password 
        usname.setTransformationMethod(PasswordTransformationMethod.getInstance()); 
       } else { 
         // hide password 
        pword.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); 
       } 
      } 
     }); 

     login.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       final String username = usname.getText().toString(); 
       final String password = pword.getText().toString(); 
       if (username.equals("") || password.equals("")) { 
        if (username.equals("")) { 
         Toast.makeText(Login.this, "ENTER USERNAME", 
           Toast.LENGTH_LONG).show(); 

        } 
        if (password.equals("")) { 
         Toast.makeText(Login.this, "ENTER PASSWORD", 
           Toast.LENGTH_LONG).show(); 

        } 

       } else { 
        if (!CheckUsername(username)) { 
         Toast.makeText(Login.this, "ENTER VALID USERNAME", 
           Toast.LENGTH_LONG).show(); 
        } 
        if (!CheckPassword(password)) { 
         Toast.makeText(Login.this, "ENTER VALID PASSWORD", 
           Toast.LENGTH_LONG).show(); 
        } 

       } 

       final String queryString = "username=" + username + "&password=" 
         + password; 
       String result = DatabaseUtility.executeQueryPhp("login",queryString); 

       Intent i = new Intent(getApplicationContext(), Home.class); 
        startActivity(i); 







         } 
         }); 



      } 

      private boolean CheckPassword(String password) { 

       return PASSWORD_PATTERN.matcher(password).matches(); 
      } 

      private boolean CheckUsername(String username) { 

       return USERNAME_PATTERN.matcher(username).matches(); 
      } 
+1

你有没有试过通过在相关行放置断点来调试你的代码? – 2014-09-26 10:11:05

+0

尝试'username.trim()。equals(“”)'和'password.trim()。equals(“”)''。 – 2014-09-26 10:11:14

+0

嗨MysticMagic不起作用相同的问题 – user3436185 2014-09-26 10:16:42

回答

0
login.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      final String username = usname.getText().toString(); 
      final String password = pword.getText().toString(); 
      if (username.equals("") || password.equals("")) { 
       if (username.equals("")) { 
        Toast.makeText(Login.this, "ENTER USERNAME", 
          Toast.LENGTH_LONG).show(); 

       } 
       if (password.equals("")) { 
        Toast.makeText(Login.this, "ENTER PASSWORD", 
          Toast.LENGTH_LONG).show(); 

       } 

      } else if (!CheckUsername(username) && !CheckPassword(password)){ 
        Toast.makeText(Login.this, "ENTER VALID USERNAME & PASSWORD", 
          Toast.LENGTH_LONG).show(); 
      }else{ 
      Intent i = new Intent(getApplicationContext(), Home.class); 
       startActivity(i); 
      } 
     } 
     }); 
+0

嗨raja它的工作谢谢 – user3436185 2014-09-26 10:35:47

+0

raja我需要调用databaseutility类 – user3436185 2014-09-26 10:52:43

0

用来检查用户名和同样的方式检查密码

public static boolean isValidUsername(EditText ed) { 
    boolean isValidUsername = true; 
    if (ed != null) { 
     Pattern r = Pattern.compile(USERNAME_PATTERN); 
     String s = ed.getText().toString().trim(); 
     String s1 = s.toString(); 
     Matcher m = r.matcher(s1); 
     if (m.find()) { 
      ed.setError("You are allowed to use a-z, A-Z, 0-9, ***") // *** are your         other possible symbols 
      isValidUsername = false; 
     } else if (s.length() < 5) { 
      ed.setError("Atleast five characters must be there in username"); 
      isValidUsername = false; 
     } 
    } 
    return isValidUsername; 
} 

现在

if(editetxt_username.isValidUsernam() && editetxt_password.isValidPassword()) { 
    //Change to new activity here 
} 
0

您可以使用:

TextUtils.isEmpty(CharSequence); 

例子:

Editable username = txtUsername.getText(); 
if(TextUtils.isEmpty(username)) { 
    // username field is empty 
} 
else { 
    // username field is not empty , TODO check the pattern of the username 
} 

PS:做同样的事情密码字段。