Java 使用IF函数单击侦听器
我需要在我的android应用程序中为用户创建登录密码。第一部分比较setPass和确认pass,然后将其保存在db中。我的问题是,else永远不会运行 下面是我的代码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
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()
希望有帮助。真的,这就是你调试的方式吗?在每条语句之间记录日志?你没听说过一种叫做调试器的东西吗?