Сгруппировать по запросу, показывая некоторые неожиданные результаты в представлении списка Android
У меня есть представление списка, в котором я показываю полученные сообщения с контактных номеров. Теперь проблема заключалась в том, что если я получил 5 сообщений от «1234567» и 3 сообщения от «56789», то мой основной просмотр списка отображал 8 сообщений, хотя я просто хочу показать 1 1 сообщение по обоим этим номерам в моем основном списке, аналогичном приложениям sms. как темы и при щелчке по элементу оставшиеся сообщения должны отображаться для этого конкретного номера. Кто-то ответил мне, чтобы я использовал групповой запрос по номеру телефона для запроса результатов по номеру телефона. Когда я получил смс, я сохранил его в таблице с именем "smss". Это мой код при получении данных из базы данных:
public ArrayList<Sms> fetchScreenedSms() {
Sms a = new Sms();
ArrayList<Sms> smsInbox = new ArrayList<Sms>();
String query_fetchSMS = "select * from " + "smss" + " group by " + "contactnumber" + "\"" ;
DBtableforNotSpam smsD = new DBtableforNotSpam(this);
SQLiteDatabase dbw = smsD.getWritableDatabase();
Cursor cursor = dbw.rawQuery(query_fetchSMS, null);
if (cursor != null) {
cursor.moveToLast();
if (cursor.getCount() > 0) {
do {
Sms message = new Sms();
message.id = cursor.getInt(cursor
.getColumnIndex("id"));
message.messageNumber = cursor.getString(cursor
.getColumnIndex("contactnumber"));
message.messageSender = cursor.getString(cursor
.getColumnIndex("contactname"));
message.messageContent = cursor.getString(cursor
.getColumnIndex("message"));
message.setDate(cursor.getString(cursor
.getColumnIndex("date")));
smsInbox.add(message);
} while (cursor.moveToPrevious());
} else {
empty.setVisibility(View.VISIBLE);
}
это мой код для сохранения смс в базе данных:
public void screenMessagee(Context context, String msg_from, String msgSender,
String msgBody, String msgDate) {
DBtableforNotSpam smsdb = new DBtableforNotSpam(context);
SQLiteDatabase dbw = smsdb.getWritableDatabase();
String query_insertSMS = "insert into " + "smss" + "(" + "contactnumber" + "," + "contactname" + "," + "message"
+ "," + "date" + ") values (\"" + msg_from.toString() + "\", \"" + msgSender + "\",\"" + msgBody
+ "\",\"" + msgDate + "\")";
dbw.execSQL(query_insertSMS);
smsdb.close();
dbw.close();
abortBroadcast();
}
Теперь я применил группу к запросу в методе fetchScreenSms, предложенном кем-то, но если применил это, то просмотр списка ничего не показывает, то есть это пустые данные просмотра списка:
String query_fetchSMS = "select * from " + "smss" + " group by " + "contactnumber" + " = \"" + "\"" ;
Это кто-то предлагает, но в представлении списка ничего не отображается, и когда я применяю это, в представлении списка отображаются данные, относящиеся к этому номеру.
String query_fetchSMS = "select * from " + "smss" + " group by " + "contactnumber" + " = \"" + "1234567" + "\"" ;
После этого запроса просмотр списка показывает мне одно сообщение с этим номером в моем главном просмотре списка и затем 5 сообщений внутри этого списка. Это именно то, что я хочу. Но почему верхний запрос не работает? Я хочу показать оба номера сообщений
Что и где происходит проблема? Не отображаются результаты при использовании простой группы по запросу, но отображаются результаты, когда я указываю число в группе по. Кто-нибудь, пожалуйста, помогите Я застрял