Получить определенные строки из базы данных SQLite на Android - для обмена сообщениями часть приложения - PullRequest
0 голосов
/ 08 октября 2019

Я потратил некоторое время на поиск возможных ответов на эту проблему, а также на документацию и руководства по SQLite, но я все еще не могу извлечь определенные строки из базы данных SQLite в приложении для Android, которое я пишу.

У меня есть база данных сообщений, которые я получил из Twitter с помощью библиотек Twitter4j и затем сохранил в базе данных, возвращая все значения и отображая их в макете, работает отлично, но когда я пытаюсь получить конкретный поток чата, этопо-прежнему возвращает все значения, а не только сообщения между пользователем приложения и указанным контактом.

Я знаком с тем, как работают логические операторы, поскольку я частично прохожу степень и провел два года, работая с C ++,однако SQL является новым для меня.

Может случиться так, что я не могу увидеть дерево для деревьев с этим, но ниже приведен аргумент WHERE, который я передаю методу базы данных query ().

//Values to replace '?' in whereClause
String[] userArgs new String[] { senderName, recipientName };

//Argument to be passed to WHERE in query method
String whereClause = "(user_screen=? AND recipient_screen=?) OR (recipient_screen=? AND user_screen=?)"

Результат, которого я пытаюсь достичь, состоит в том, чтолюбые сообщения между отправителем и получателем отображаются без других сообщений из базы данных. Ниже приведены заголовки столбцов в базе данных:

  • ID
  • Содержание сообщения
  • Получатель
  • Отправитель
  • Время
  • Изображение профиля

1 Ответ

0 голосов
/ 08 октября 2019

Я думаю, что вы хотите: -

String[] userArgs new String[] { senderName, recipientName, senderName, recipientName };

То есть предложение WHERE имеет 4 параметра для привязки, а не 2 параметра.

...