Android AsyncTask完成执行后未更新ExpandableListView

Android AsyncTask完成执行后未更新ExpandableListView,android,android-asynctask,expandablelistview,Android,Android Asynctask,Expandablelistview,我有一个ExpandableListView,它是作为活动的一部分创建的: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.news); // create the exandable list view widget newsListAdapter = new

我有一个ExpandableListView,它是作为活动的一部分创建的:

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.news);

    // create the exandable list view widget
    newsListAdapter = new NewsListAdapter(this.getApplicationContext());    

    newsListView = (ExpandableListView) findViewById(R.id.news_list_view);

    newsListView.setAdapter(newsListAdapter);

    final Button homeButton = (Button) findViewById(R.id.home_btn);

    // go back to the home page
    homeButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {                
            startActivity(new Intent(view.getContext(), HomeActivity.class));
        }
    });   

    newsListView.setOnGroupClickListener(new OnGroupClickListener() {
        public boolean onGroupClick(ExpandableListView parent, View view, int groupPosition, long arg3) {
            return false;
        }
    });

    newsListView.setOnChildClickListener(new OnChildClickListener() {
        public boolean onChildClick(ExpandableListView parent, View view, 
                                    int groupPosition, int childPosition, long id) {
            return false;
        }
    });

    showLoadingProgressDialog();

    downloadRssFeedTask = new DownloadRssFeedTask();

    downloadRssFeedTask.execute();
}  
正如您从代码中看到的,它在异步任务中启动并从RSS提要中执行拉取操作

AsyncTask完成后,“进度”对话框被取消,活动被告知任务已完成:

   private void responseReceived(Channel newsResponse) {
    if (newsResponse != null)           
        newsListAdapter.buildView(newsResponse);
    }
    else {
    Toast toast = Toast.makeText(this.getApplicationContext(), 
                           "There is no news available at this time.", 
                           Toast.LENGTH_LONG);

        toast.show();
    }
}
但是,ExpandableListView在加载数据后不会重新绘制/刷新自身,它是一个空白屏幕。如何让ExpandableListView使用RSS数据刷新自身?我尝试了
invalidate
refreshDrawableState
但没有任何乐趣


想法?

我猜您在下载RSS提要后忘记调用适配器上的
notifyDataSetChanged()
方法(可能您应该在
AsyncTask
中的
onPostExecute()
方法中调用它)。

这应该有效

newsListAdapter.notifyDataSetChanged()
啊!神奇的答案是适配器类上的
notifyDataSetChanged()