notifyDataSetChanged() on my adapter does not update the listview, why?

前端 未结 3 1569
迷失自我
迷失自我 2021-01-24 03:53

I have a activity that extends listactivity, extended in this class i have a class that extends baseadapter.

now in my listactivity i have this onCreate

         


        
相关标签:
3条回答
  • 2021-01-24 04:38

    The only place you can update the UI is in onProgressUpdate(...);. From your doInBackground(...), call publishProgress(...).

    0 讨论(0)
  • 2021-01-24 04:47

    Have you tried using an AsyncTaskLoader instead of an AsyncTask for this. It's this kind of stuff that Loaders were exactly designed for. Note that even though Loaders weren't available until API-10 you can still easily access them via the android Support Pacakge from API-4 and up.

    0 讨论(0)
  • 2021-01-24 04:58

    If the adapter is already set, setting it again will not refresh the listview. Instead first check if the listview has a adapter and then call the appropriate method.

    I think its not a very good idea to create a new instance of the adapter while setting the list view. Instead, create an object.

    BuildingAdapter adapter = new BuildingAdapter(context);
    
        if(getListView().getAdapter() == null){ //Adapter not set yet.
         setListAdapter(adapter);
        }
        else{ //Already has an adapter
        adapter.notifyDataSetChanged();
        }
    
    0 讨论(0)
提交回复
热议问题