Уведомить ListView о получении набора данных - PullRequest
0 голосов
/ 25 июля 2011

У меня есть 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;

// этот метод retrieveList отправляет смс

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, а сейчас, когда я нажимаю на меню, сначала я получаю свое сообщение на эмуляторе, а затем с другого эмулятора, который я отправляю выше, появляется тост не просмотр списка, но как только я нажимаю на меню снова, я наконец получаю просмотр списка. Что я сделал не так?

1 Ответ

0 голосов
/ 25 июля 2011

Вместо вызова notifyDataSetChanged(), вызов listView1.setAdapter(adapter) приведет к обновлению списка.

...