0

我需要在我的 android 应用程序中为用户创建登录密码。第一部分比较 setPass 和确认通过,然后将其保存在数据库中。我的问题是 else 永远不会运行下面是我的代码...

  savePass.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
              if(setPass.getText().toString()
!=conPass.getText().toString()){
                Log.d("login", "Checking whether passwords created ok");
                Log.d("login", "setPass: " + setPass.getText().toString());
                Log.d("login", "conPass: " +  conPass.getText().toString());
                error.setText("Passwords do not match!");
            }else{
                Log.d("login", "showing dialog 0 ");
                showDialog(0);
                Log.d("login", "Instantiating loginNew");
                Login login = new Login();

                login.setPassword(setPass.toString());
                Log.d("login", "Adding to db");
                db.addPassword(login);
                Log.d("login", "opening main login form");
                Intent intent = new Intent("com.philsoft.budget.activity_main");
                startActivity(intent);  
            }
        }
    });
4

2 回答 2

2

不要将两个字符串与==运算符进行比较。改为使用String.equals()

if(setPass.getText().toString().equals(conPass.getText().toString())){
// your necessary codes

} else {

}

您必须记住,==比较对象引用,而不是内容。

于 2013-01-31T08:13:26.160 回答
0

试试这个:

if(!setPass.getText().toString().equals( conPass.getText().toString()) ){

当使用==or !=with objects 时比较内存引用,而不是实际值。要比较值应该使用equals().

希望能帮助到你。

于 2013-01-31T08:17:28.840 回答