【发布时间】:2017-04-30 18:36:59
【问题描述】:
我有一个用于个人应用程序的 android studio 项目,它附有一个简单的密码,以验证我是使用它的人。我的代码如下:
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 明确声明不是这样?
【问题讨论】:
-
您没有从您的edittext
passwordInput中获取要与之匹配的文本。将if(passwordInput.toString() == "Magic")替换为if(passwordInput.getText..toString() == "Magic")。