何らかの理由で、入力したユーザー名が見つからない場合、アプリケーションがクラッシュします。しかし、ユーザー名が見つかったら、完璧に動作するようです。私は返されたカーソル== 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を返します
へ/developer.android.com/reference/android/database/Cursor.html#moveToFirst%28%29 –
True。それは私の解決策よりもきれいです。 – anon