Как отфильтровать базу данных Android по столбцам - PullRequest
2 голосов
/ 07 апреля 2010

Я пишу приложение для Android для RC Cars.Он использует базу данных SQLite и сохраняет модель автомобиля, имя автомобиля и другие переменные.

Вот мой код:

public Cursor fetchAllNotes() {
  return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
    KEY_CARNAME, KEY_TRACKNAME, KEY_TRACKSIZE, KEY_TRACKTRACTION, KEY_TRACKSURFACE, KEY_BODYTYPE,
    KEY_COMMENTS}, KEY_CARNAME + "=" + "'MTX-4'", null, null, null, null);
}

Как отобразить только записи, которые имеют определеннуюмодель автомобиля названа в колонке с именем автомобиля?Пока что я могу фильтровать результаты только с помощью 'MTX-4' или какой-либо другой литеральной строки.Мне нужно иметь возможность заменить это строковой переменной, например String carName или чем-то еще, чтобы я мог фильтровать по определяемому пользователем имени машины.

1 Ответ

8 голосов
/ 07 апреля 2010

Заменить 'MTX-4' на "?" в качестве переменной параметра. Затем замените параметр selectionArgs (null в вашем примере) на ваш список параметров, например, новая строка [] {"MTX-4"} или новая строка [] {имя_карты}

Следующий фрагмент соответствует вашему.

return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
    KEY_CARNAME, KEY_TRACKNAME, KEY_TRACKSIZE, KEY_TRACKTRACTION, KEY_TRACKSURFACE, KEY_BODYTYPE, KEY_COMMENTS}, KEY_CARNAME + "=" + "?", new String[]{"MTX-4"}, null, null, null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...