Как использовать Notifydataset, измененный для адаптеров списка в Android

Я много гуглил об этой проблеме с изменением набора данных, но я не могу найти ответ, у меня есть список, содержащий пользовательский объект.

Моя реализация выглядит так

1) Список пользовательских объектов 2) Адаптер, которому я предоставляю список пользовательских объектов

Мой вопрос:

Когда я удаляю любой элемент из списка, в бэкэнде я просто вызываю удаление из списка настраиваемых объектов. и если я вызову notifyDatasetchanged, это не сработает :(..

Он не обновляет список, я не знаю, где он отсутствует. Пожалуйста, помогите мне, какова процедура обновления списка в этом senarios.


person Naruto    schedule 03.11.2012    source источник
comment
Пожалуйста, предоставьте какой-нибудь код, вы уверены, что вызываете notifyDataSetChanged на своем адаптере, а не на новом? Также проверьте, удаляете ли вы элемент из списка, который используется адаптером, например. адаптер имеет ссылку на этот список.   -  person Dmytro Danylyk    schedule 03.11.2012
comment
Если вы хотите получить хорошие ответы на свои вопросы, улучшите принятый рейтинг.   -  person Ofir A.    schedule 03.11.2012


Ответы (2)


Взгляните на мой ответ в этой теме.

Дайте мне знать, если у вас все еще есть проблемы.

ваше здоровье!

person PinoyCoder    schedule 03.11.2012
comment
Привет, Стем, спасибо за ответ. где я должен разместить свой код .. когда его вызывать ???... как только я удалю из списка, как это сделать ??? - person Naruto; 03.11.2012
comment
Вы можете вызвать это в любом месте вашего потока или как только вы удалите элемент в своем списке. - person PinoyCoder; 05.11.2012

Используйте AsynkTask для пользовательского ListView следующим образом: -

 InboxTask.execute(); will call asynktask

class InboxTask extends AsyncTask<Uri, Integer, ArrayList<InboxField>> 
{
@Override
    protected void onPreExecute() 
   {
     pd=ProgressDialog.show(HomePage.this, "", "Please wail...",true,false);
    super.onPreExecute();
   }
@Override
    protected ArrayList<InboxField> doInBackground(Uri... params) 
    {
return ArrayList<InboxField>
}
  @Override
    protected void onPostExecute(ArrayList<InboxField> result) 
    {
        inboxAdapter=new InboxAdapter(HomePage.this,result);
        list.setAdapter(inboxAdapter);
                      adapter.notifyDataSetChanged();
            list.destroyDrawingCache();
        pd.dismiss();

    }

поместите adepter.notigyDataSetChanged в метод onPostExecute

person Deepanker Chaudhary    schedule 03.11.2012