我有一个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。我做错了什么?
答案 0 :(得分:0)
调用notifyDataSetChanged()
会强制列表视图刷新,而不是调用listView1.setAdapter(adapter)
。