Android Studio(Java)密码修改验证失败问题求助
问题排查与解决
你的核心问题出在字符串比较方式错误:Java中使用==比较字符串时,对比的是两个字符串对象的内存引用,而非实际内容。即便输入的字符串内容和预设的"xxxx"一致,它们也可能是不同的对象,导致判断始终为false,触发错误提示。
修改方案
将ChangePassword方法中的判断逻辑替换为equals()方法(用于对比字符串内容):
public void ChangePassword(EditText oldPass) { buttonChange.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 用equals()对比字符串内容,同时先判空避免空指针异常 if ("xxxx".equals(oldPass.getText().toString())) { Toast.makeText(getApplicationContext(), "Password Updated!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "ERROR", Toast.LENGTH_SHORT).show(); } } }); }
额外提示
- 把预设字符串"xxxx"放在
equals()前面,是为了避免当oldPass.getText().toString()为空时触发NullPointerException - 后续如果涉及用户输入的新密码处理,也记得用同样的方式做内容对比,不要用
==
内容的提问来源于stack exchange,提问作者stack
相关产品推荐
相关产品推荐

