Java 使用IF函数单击侦听器

Java 使用IF函数单击侦听器,java,android,Java,Android,我需要在我的android应用程序中为用户创建登录密码。第一部分比较setPass和确认pass,然后将其保存在db中。我的问题是,else永远不会运行 下面是我的代码 savePass.setOnClickListener(new OnClickListener() { public void onClick(View v) { if(setPass.getText().toString() !=conPass.getText().toStrin

我需要在我的android应用程序中为用户创建登录密码。第一部分比较setPass和确认pass,然后将其保存在db中。我的问题是,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);  
            }
        }
    });

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

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

} else {

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

尝试以下方法:

if(!setPass.getText().toString().equals( conPass.getText().toString()) ){
当使用
==
时=与对象比较内存引用,而不是实际值。要比较该值,应使用
equals()


希望有帮助。

真的,这就是你调试的方式吗?在每条语句之间记录日志?你没听说过一种叫做
调试器的东西吗?