E/AndroidRuntime: FATAL EXCEPTION: main
Process: home.partyfinder3, PID: 8459
java.lang.IllegalArgumentException: Cannot bind argument at index 2 because the index is out of range. The statement has 0 parameters.
at android.database.sqlite.SQLiteProgram.bind(SQLiteProgram.java:212)
at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:166)
at android.database.sqlite.SQLiteProgram.bindAllArgsAsStrings(SQLiteProgram.java:200)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255)
at home.partyfinder3.LoginActivity.onClick(LoginActivity.java:51)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Вот такой exception вылетает, когда нажимаю кнопку "Войти". Обработчик:
public void onClick(View v) {
String username = etUsername.getText().toString();
String password = etPassword.getText().toString();
db = dbHelper.getWritableDatabase();
switch (v.getId()) {
case R.id.btnLogin:
Cursor c = db.rawQuery("SELECT username FROM users WHERE username='?' AND password='?'", new String[] {username, password});
if(c.moveToFirst()) {
Toast.makeText(this, R.string.login_enjoy, Toast.LENGTH_LONG).show();
startActivity(new Intent(this, MainActivity.class).putExtra("username", username));
c.close();
} else {
Toast.makeText(this, R.string.login_error, Toast.LENGTH_LONG).show();
}
break;
case R.id.btnLinkToRegisterScreen:
startActivity(new Intent(this, RegisterActivity.class));
break;
}
dbHelper.close();
}
Где что не так?
Сделайте консоль-лог сформированного запроса к базе и попробуйте его скопировать и выполнить вручную непосредственно в интерфейсе базы данных sql. Если там запрос не отработает, то хоть будет видна реальная причина.
Уберите из текста запроса одинарные кавычки.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Отправил резюме, получил в ответ вопрос: "готовы ли вы выполнить небольшое тестовое задание в 2 экрана?"
Я во всех учебниках видел, читал, тестировал interface с методами без реализацииНо вот копаюсь в дереве и тут есть методы с реализацией default
Этот вопрос является продолжением темы Создание всплывающего окна с произвольным содержимымВ том вопросе было предложено такое решение: