由於某些原因,當我找不到輸入的用戶名時,應用程序崩潰。但是,當用戶名被發現時,它似乎運行完美。我甚至做了檢查,看看返回的遊標== null。繼承人的代碼Android SQLite CursorIndexOutOfBounds
public boolean isUserAuthenticated(String username, String password) {
// TODO Auto-generated method stub
boolean authenticated = false;
String[] columns = new String[] {LOGIN_USERNAME, LOGIN_PASSWORD};
String sqlUsername = "\"" + username + "\"";
Cursor c = ourDatabase.query(LOGIN_TABLE, columns, LOGIN_USERNAME + "="+ sqlUsername, null, null, null, null);
if (c != null) {
c.moveToFirst();
String passwordAttachedToUsername = c.getString(1);
if(passwordAttachedToUsername.equals(password)) {
authenticated = true;
}
}
return authenticated;
}
或者你可以檢查'moveToFirst'返回值將返回true:HTTP:/ /developer.android.com/reference/android/database/Cursor.html#moveToFirst%28%29 –
是的。這比我的解決方案更清潔。 – anon