所以我一直试图在没有数据库的情况下做这个简单的登录应用程序。如果输入与定义的函数相同,则登录将成功。
按钮功能正常,但即使输入正确值,我也无法登录!
以下是代码
声明
String id ="id";
String pw ="pw";
如果不是
userET = (EditText)findViewById(R.id.editTextUser);
passwordET = (EditText)findViewById(R.id.editPassword);
loginBT = (Button)findViewById(R.id.btnLogin);
loginBT.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
try {
if(userET.equals(id)
&& passwordET.equals(
pw)) {
Toast.makeText(Login.this,
"login passed!!",
Toast.LENGTH_SHORT).show();
//user = userET.getText();
startActivity(new Intent("MainActivity"));
} else {
Toast.makeText(Login.this,
"login failed!!",
Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
提前谢谢
更新:抱歉,我应该发布一个新问题,我之前的问题是关于按钮这是我刚刚编辑的第二个问题,因为在我发布上一个问题之后我立即意识到了什么是错误的固定它。我不知道有些人能够快速回复,感谢那些人。 :d
答案 0 :(得分:1)
你应该这样做:
username = userET.getText().toString();
password = passwordET.getText().toString();
之前:
if(username.equals(id) && password.equals(pw)) {
因为用户名和密码的值为空。
答案 1 :(得分:0)
public void onClick(View v) {
try {
if(username.equals(id) && password.equals(pw))
[...]
您从哪里获取username
和password
的值?
在检查之前,您必须先从文本字段中阅读它们!
username = userET.getText().toString();
password = passwordET.getText().toString();
<强>更新强>
你现在比较TextViews与id / pw。不要这样做。您想要比较TextViews中的Text,而不是TextViews本身:
String InputUsername = userET.getText()
String InputPassword = passwordET.getText()
然后将这些值与预定义值进行比较。
答案 2 :(得分:0)
在比较前添加此内容
username = userET.getText().toString();
password = passwordET.getText().toString();
答案 3 :(得分:0)
您尚未为变量'username'和'password'指定值。加上这个:
username = userET.getText().toString();
password = passwordET.getText().toString();
在try / catch块之前。