如何更新listview中的列表项?

时间:2015-09-30 04:42:37

标签: android listview android-listview

我有ListViewSmsArrayAdapter个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();
    }

短信没有标记为已读。问题出在哪儿 ?

0 个答案:

没有答案