我有ListView
个SmsArrayAdapter
个SMSItem对象。
SmsArrayAdapter.java
public class SmsArrayAdapter extends ArrayAdapter<SMSItem>
我想更新ListView
的项目。这就是我在onItemClick
方法中使用SMSItem对象并尝试将它们标记为已读的原因。
SMSItem smsMessageStr = (SMSItem) arrayAdapter.getItem(pos);
if (smsMessageStr.status == false) {
((SmsArrayAdapter) arrayAdapter).setRead(pos, smsMessageStr.ID);
Toast.makeText(this, "ID is " + smsMessageStr.ID, Toast.LENGTH_LONG).show();
arrayAdapter.notifyDataSetChanged();
}
将sms标记为如下所示的方法,该方法在 SmsArrayAdapter.java中声明
public void setRead(int position, String smsMessageId) {
smsBody.get(position).status = true;
SMSItem smsItem = smsBody.get(position);
smsItem.status = true;
smsBody.set(position, smsItem);
ContentValues values = new ContentValues();
values.put("read", true);
int flag = context.getContentResolver().update(Uri.parse("content://sms/inbox"),
values, "_id=" + smsMessageId, null);
Toast.makeText(context, "The result is "+flag, Toast.LENGTH_LONG).show();
}
短信没有标记为已读。问题出在哪儿 ?