我有一个列表视图,其中显示了从联系人号码收到的消息.现在的问题是,如果我收到来自“ 1234567”的5条消息和来自“ 56789”的3条消息,那么我的主列表视图显示了8条消息,尽管我只想在我的主要lisvtiew中通过这两个数字显示1条消息,类似于sms应用程序作为线程并在项目上单击,将显示该特定编号的剩余消息.
有人回答我使用按电话号码分组查询来按电话号码查询结果.
当收到任何短信时,我将其保存在名为“ smss”的表中.
这是我从数据库中获取数据时的代码:
public ArrayList fetchScreenedSms() {
Sms a = new Sms();
ArrayList smsInbox = new ArrayList();
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方法中应用了按组查询,但是如果应用了此方法,则listview没有显示任何内容,即它为空的listview数据:
String query_fetchSMS = "select * from " + "smss" + " group by " + "contactnumber" + " = \"" + "\"" ;
这是某人建议的,但在列表视图中什么也没有显示
当我应用此然后listview显示与该数字有关的数据.
String query_fetchSMS = "select * from " + "smss" + " group by " + "contactnumber" + " = \"" + "1234567" + "\"" ;
在查询之后,列表视图在我的主列表视图中向我显示该编号中的一条消息,然后在其中显示5条消息.这正是我想要的.但是为什么上层查询不起作用?我想同时显示两个数字消息
问题在什么地方发生?
使用简单的分组查询时不显示结果,但在分组依据中指定数字时显示结果.
任何人都可以帮助Iam卡住