Edittext字符串比较不起作用

时间:2017-04-30 18:36:59

标签: android android-studio

我有一个Android工作室项目,用于个人应用程序,其上附有一个简单的密码,以便验证我是使用它的人。我的代码如下:

public class StartActivity extends AppCompatActivity {
    FloatingActionButton authenticate;
    EditText passwordInput;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);

        authenticate = (FloatingActionButton) findViewById(R.id.authenticateCheck);
        passwordInput = (EditText) findViewById(R.id.inputPass);

        authenticate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(passwordInput.getText().toString() == "Magic") {
                    Intent i = new Intent(StartActivity.this, LilyMainInterface.class);
                    startActivity(i);
                } else {
                    passwordInput.setText("");
                }
            }
        });
    }
}

我已经导入了所有必需的类,但没有一个是有效的。我没有看到任何问题,当我删除if语句时,代码成功打开了正确的活动。除此之外,它一直认为密码不匹配。

修改 我改变了

==

.equals()
正如评论中所说的那样。它工作,但之前我没有这样做的原因是因为android studio给了我一条消息说:

  

将字符串值与'=='进行比较,而不是'equals()'。

为什么.equals()有效,即使android studio明确说明了其他情况?

1 个答案:

答案 0 :(得分:0)

您需要匹配来自edittext的字符串,如:

  passwordInput = (EditText) findViewById(R.id.inputPass);

  if(passwordInput.getText().toString().equals("Magic")) {
        Intent i = new Intent(StartActivity.this, LilyMainInterface.class);
        startActivity(i);
    }