我正在尝试创建一个简单的用户名/密码登录屏幕。我已经完成了布局,现在,我正在设置它,所以当用户名(EditText) == "crete"
时,它应该做一些事情。这是我的代码......:
public class Login extends Activity {
public static EditText username, password;
public Button loginbutton;
boolean accessgranted;
public String dbu, dbp, user1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
username = (EditText) this.findViewById(R.id.username);
password = (EditText) this.findViewById(R.id.password);
loginbutton = (Button) this.findViewById(R.id.loginbutton);
user1 = "crete";
loginbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try{
dbu = (username.getText()).toString();
}
finally{
if (dbu == user1){
username.setText("SUCCESS");
}
}
}
});
}
}
遗憾的是,这不起作用。它正确地将它转换为字符串(我认为),因为当我测试这个代码时:
loginbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try{
dbu = (username.getText()).toString();
}
finally{
username.setText("done" + dbu);
}
}
}
});
它正确输入您在EditText
中输入的内容以及“完成”一词。
创建if-then语句似乎存在问题?
答案 0 :(得分:4)
使用方法String
测试.equals("String")
相等。
使用==
,您正在测试对象的引用是否相等。
答案 1 :(得分:3)
尝试使用equalsIgnoreCase(String)
代替==
比较器。
像这样:dbu.equalsIgnoreCase(user1)
答案 2 :(得分:1)
dub
和user1
是两个独立的String对象。你正在比较它们:dbu == user1
。这将始终返回false。相反,请将其替换为dbu.equals(user1)
。