-1

我正在尝试为我的 Android 应用程序创建一个登录页面。我有 2 个编辑视图和一个按钮。我正在使用静态用户凭据登录。当我运行该应用程序并尝试使用正确的用户名和密码登录时,它会提供不正确的凭据消息。

这是我的代码,这是一段非常简单的代码

public void sendMessage(View view) {

    EditText user_name = (EditText)findViewById(R.id.txt_username);
    EditText password =(EditText)findViewById(R.id.txt_password);

    if(user_name.getText().toString()=="rotanet" && password.getText().toString()=="rotanet"){
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        TextView lbl_error = (TextView)findViewById(R.id.lbl_error);
        lbl_error.setText("");
    }
    else{
        TextView lbl_error = (TextView)findViewById(R.id.lbl_error);
        lbl_error.setText("wrong credentials!");
    }
}
4

6 回答 6

3

您应该使用equalsorequalsIgnoreCase而不是==来比较字符串

例子:

 if(user_name.getText().toString().equals("rotanet") && password.getText().toString().equals("rotanet"))
{
stuff
}
于 2013-05-14T12:40:49.893 回答
2

您正在使用 == 来比较字符串。

使用 .equals insted。

if(user_name.getText().toString().equals("rotanet") && password.getText().toString().equals("rotanet")){
于 2013-05-14T12:41:04.327 回答
2

在检查密码时 使用gettext().toString().equals("goodpass")而不是。比较参考,而不是价值。====

于 2013-05-14T12:41:34.973 回答
1

使用 .equals

if(user_name.getText().toString().equals("rotanet") && password.getText().toString().equals("rotanet"))
{
 //dosomething  
}

== 运算符确定 2 个引用是否指向同一个对象。

于 2013-05-14T12:41:33.463 回答
0

==不用于比较字符串的内容。尝试user_name.getText().toString().equals("rotanet")

== 测试引用相等性。

于 2013-05-14T12:42:29.777 回答
0

使用equals方法进行比较

if((user_name.getText().toString().equals("rotanet") && password.getText().toString().equals("rotanet"))
{

}
于 2013-05-14T12:42:58.320 回答