我是Android編程的初學者,我試圖使登錄功能。這個系統將被兩個用戶admin和用戶訪問。管理員只需輸入用戶名和密碼的「admin」即可訪問系統。但是,用戶在登錄系統之前需要註冊他們的賬戶。登錄(無法從數據庫中檢索數據)
我認爲註冊沒有問題。但是,當我嘗試登錄帳戶時,它說用戶名和密碼不匹配。我認爲它無法從數據庫中檢索數據。請幫我檢查註冊和登錄功能代碼。謝謝
MainActivity.java
public void onclickLogin(View view) {
Toast.makeText(getBaseContext(), "Please wait....", Toast.LENGTH_LONG).show();
txtusername = Username.getText().toString();
txtpassword = Password.getText().toString();
DatabaseOperations dop = new DatabaseOperations(this, null, null, 1);
Cursor CR = dop.getInformation(dop);
CR.moveToFirst();
boolean login_status = false;
String NAME = "";
if (txtusername.equals("Admin") && (txtpassword).equals("Admin")) {
Intent in = new Intent(MainActivity.this, AdminMenu.class);
startActivity(in);
} else {
do {
if (txtusername.equals(CR.getColumnIndex(TableData.TableInfo.USERNAME)) && (txtpassword.equals(CR.getColumnIndex(TableData.TableInfo.USERPASS)))) {
login_status = true;
NAME = CR.getString(CR.getColumnIndex(TableData.TableInfo.USERNAME));
}
} while (CR.moveToNext());
if (login_status) {
Toast.makeText(getBaseContext(), "Login Success....\n Welcome " + NAME, Toast.LENGTH_LONG).show();
Intent i=new Intent(MainActivity.this,UserMenu.class);
Bundle bundle=new Bundle();
bundle.putString("username",NAME);
i.putExtras(bundle);
startActivity(i);
finish();
} else {
Toast.makeText(getBaseContext(), "Login Failed...", Toast.LENGTH_LONG).show();
}
DatabaseOperations.java
public Cursor getInformation(DatabaseOperations dob)
{
SQLiteDatabase database=dob.getReadableDatabase();
String[] columns={TableInfo.USERNAME,TableInfo.USERPASS};
Cursor cr=database.query(TableInfo.TABLE_NAME,columns,null,null,null,null,null);
return cr;
}
public void putInformation(Account account) {
ContentValues cv = new ContentValues();
cv.put(TableInfo.USERNAME, account.get_username());
cv.put(TableInfo.USERPASS, account.get_password());
cv.put(TableInfo.USERPHONE, account.get_Phone());
cv.put(TableInfo.USEREMAIL, account.get_Email());
cv.put(TableInfo.USERCARPLATE1, account.get_CarPlate1());
cv.put(TableInfo.USERFULLNAME, account.get_FullName());
cv.put(TableInfo.USERIC, account.get_IdentityCard());
SQLiteDatabase SQ = this.getWritableDatabase();
SQ.insert(TableInfo.TABLE_NAME, null, cv);
Log.d("Database operations", "One row inserted");
SQ.close();
}
RegisterPage.java
public void onclickRegistering(View view)
{
registerusername=RegisterUsername.getText().toString();
registerpassword=RegisterPassword.getText().toString();
conpassword=ConPassword.getText().toString();
phone=Phone.getText().toString();
email=Email.getText().toString();
identitycard=IdentityCard.getText().toString();
fullname=FullName.getText().toString();
carplate=CarPlate.getText().toString();
if(!(registerpassword.equals(conpassword)))
{
Toast.makeText(getBaseContext(),"Passwords are not matching",Toast.LENGTH_LONG).show();
RegisterUsername.setText("");
RegisterPassword.setText("");
ConPassword.setText("");
Phone.setText("");
Email.setText("");
IdentityCard.setText("");
FullName.setText("");
CarPlate.setText("");
}
else
{
DatabaseOperations db=new DatabaseOperations(this,null,null,1);
Account user=new Account(registerusername,registerpassword,Integer.parseInt(phone),email,Integer.parseInt(identitycard),fullname,carplate);
db.putInformation(user);
Toast.makeText(getBaseContext(),"Register Successfully...",Toast.LENGTH_LONG).show();
Intent in=new Intent(register_page.this,MainActivity.class);
startActivity(in);
finish();
}
}
你來自哪裏,數據庫 – androidXP
對不起,我忘了加上寄存器功能剛纔 – Jayson
嘗試用名稱'0'和密碼'1'登錄獲取數據。 –