[英]SQLite username check with EditText value
Hi i have bit problem in login actually i"m trying to tesing login by checking username from databse and edit text value but its not working . the following is my codes . i'm bit confussed about to get the EditTextvalue 嗨,我在登录时遇到了一些问题,实际上我正在尝试通过检查数据库中的用户名并编辑文本值来测试登录,但是它不起作用,以下是我的代码。我有点困惑要获取EditTextvalue
package com.example.employeemanager;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Login extends Activity {
SQLiteDatabase db;
EditText unameedt;
String unam;
String pass;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
Button logbtn = (Button) findViewById(R.id.loginbtn);
Button signup = (Button) findViewById(R.id.signup);
EditText unameedt = (EditText) findViewById(R.id.editText1);
EditText passedt = (EditText) findViewById(R.id.editText2);
db = openOrCreateDatabase("Employeemanager", MODE_PRIVATE, null);
unam = unameedt.getText().toString();
pass = passedt.getText().toString();
logbtn.setOnClickListener(new OnClickListener()
{
public void onClick(View v) {
Cursor c = db.rawQuery(
"SELECT username, password from Employee", null);
if (c != null) {
if (c.moveToFirst()) {
do {
String uname = c.getString(c
.getColumnIndex("username"));
String upass = c.getString(c
.getColumnIndex("password"));
if (uname.equals(unam)) {
StartActivity(new Intent(Login.this, Home.class));
}
} while (c.moveToNext());
}
}
}
});
signup.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
startActivity(new Intent(Login.this, Emp_signup.class));
}
});
}
}
Put your 把你的
unam = unameedt.getText().toString();
pass=passedt.getText().toString();
into butonClick event 进入butonClick事件
logbtn.setOnClickListener(new OnClickListener()
{
unam = unameedt.getText().toString();
pass=passedt.getText().toString();
});
Its simple but looks like a big thing while start learning Android. 它简单但在开始学习Android时看起来像一件大事。 What you doing now is you got the value in onCreate
您现在所要做的就是在onCreate中获得价值
unam = unameedt.getText().toString();
pass = passedt.getText().toString();
So, now the uname
and pass
is empty
because while onCreate there is no values set to the corresponding EditText
. 因此,现在
uname
和pass
为empty
因为在onCreate时没有将值设置为相应的EditText
。
In OnClick
Method you comparing the Value from Edittext and from database 在
OnClick
方法中,您比较Edittext和数据库中的值
if (uname.equals(unam)) {//if(usernamefromDatabase.equals(emptyValue))
StartActivity(new Intent(Login.this, Home.class));
}
Thats where the problem is. 那就是问题所在。
What you want to do now is get the unam
and pass
values in onClick 您现在想要做的就是在onClick中获取
unam
并pass
值
unam = unameedt.getText().toString();
pass = passedt.getText().toString();
if (uname.equals(unam)) {//if(usernamefromDatabase.equals(valueyouentered))
StartActivity(new Intent(Login.this, Home.class));
}
It should work now. 现在应该可以工作了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.