具有多个带&;条件的Java If语句&;操作员不工作

具有多个带&;条件的Java If语句&;操作员不工作,java,android,if-statement,Java,Android,If Statement,无论何时我以“Admin”和“1234”的形式输入,条件都会转到其他部分。请帮帮我,我是这个领域的初学者 string方法基于 字符串的数据/内容 试一试 private void validate(String userName, String userPassword){ if((userName == "Admin") && (userPassword == "1234")){ Intent intent = new Intent(M

无论何时我以“Admin”和“1234”的形式输入,条件都会转到其他部分。请帮帮我,我是这个领域的初学者

string方法基于 字符串的数据/内容

试一试

private void validate(String userName, String userPassword){
        if((userName == "Admin") && (userPassword == "1234")){
            Intent intent = new Intent(MainActivity.this, SecondActivity.class);
            startActivity(intent);
        } else{
            counter --;
            Info.setText(userName + " Number of Attempts Left: "+String.valueOf(counter) + " - " + userPassword);
            if(counter == 0){
                Login.setEnabled(false);
            }
        }
    }

您应该使用
equals
方法比较字符串:

  if(userName.equals("Admin") && userPassword.equals("1234")){
            Intent intent = new Intent(MainActivity.this, SecondActivity.class);
            startActivity(intent);
        } else{
            counter --;
            Info.setText(userName + " Number of Attempts Left: "+String.valueOf(counter) + " - " + userPassword);
            if(counter == 0){
                Login.setEnabled(false);
            }
        }
顺便说一句,上面的代码比

"Admin".equals(UserName)

因为当UserName为null时,它不会抛出NullPointerException。

==测试引用相等性(它们是否是相同的对象)

.equals()测试值是否相等(逻辑上是否“相等”)


因此,请使用.equals()或equalsIgnoreCase()而不是==来比较字符串对象。

尝试使用if(userName.equals(“Admin”)和&userPassword.equals(“1234”){}谢谢您的回答。但是你能告诉我“==”@Mohit==比较对象的引用有什么问题吗value@IntelliJAmiya==适用于所有基元类型、枚举。。。
UserName.equals("Admin")