接收数据集时通知ListView

时间:2011-07-25 05:08:30

标签: android listview adapter

我有一个ListView,它从BaseAdapter获取其数据集。 ListView在单击menuItem时接收数据。 我无法通知我的listView或我的ListAdapter(inboxAdapter.notifyDataSetChanged()),不起作用。 任何其他方法。

case R.id.Get:
  retrieveList();
  inboxEmails = EmailElement.parseContent();
  inboxAdapter = new nboxAdapter(getApplicationContext(),inboxEmails);
   if(inboxAdapter !=null){
    listView.setAdapter(inboxAdapter);
    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    inboxAdapter.notifyDataSetChanged();
  }
break;

//通过发送sms

来检索此方法
private void retrieveList(){
  registerReceiver(new SMSSentReciever(), new IntentFilter(SMSInfo.SENT));
  registerReceiver(new SMSDeliveredReciever(), new IntentFilter(SMSInfo.DELIVERED));
  PendingIntent sentIntent = PendingIntent.getBroadcast(this, 0, new Intent(SMSInfo.SENT), 0);
  PendingIntent deliveryIntent = PendingIntent.getBroadcast(this, 0, new Intent(SMSInfo.DELIVERED),0);
  SmsManager.getDefault().sendTextMessage("5556",null, "fruits", sentIntent, deliveryIntent);

}

基于来自广播的消息,我需要更新或通知我的Listview,现在当我点击菜单时,我首先在模拟器上获取我的消息,然后从我发送上面消息的其他模拟器,显示吐司,但是不是列表视图,但是一旦我再次点击菜单,我终于得到了listview。我做错了什么?

1 个答案:

答案 0 :(得分:0)

调用notifyDataSetChanged()会强制列表视图刷新,而不是调用listView1.setAdapter(adapter)