应用程序返回AsyncTask时未显示列表

时间:2014-04-22 19:11:21

标签: android android-asynctask expandablelistview expandablelistadapter

当我第一次在应用程序运行时调用ProcessTask时,它会成功显示ListView中的数据,但是当应用程序再次运行时(按下后退按钮并再次打开APP)并调用{{1}再次,那么我能够查看ProcessTask中的数据....为什么?

这是代码

ListView

2 个答案:

答案 0 :(得分:0)

尝试删除@Override,如下所示,但我认为问题是第二次,你已经设置了一个适配器,所以你必须告诉刷新数据,然后用notifyDataSetChanged()来做。 / p>

protected void onPostExecute(Boolean result) {
    // TODO Auto-generated method stub
    expListView.setAdapter( listAdapter ); //this displays the data
    listAdapter.notifyDataSetChanged();

}

答案 1 :(得分:0)

首先知道结果是否为假,如果结果为false则不执行任何操作,否则setadapter并通知适配器中更改的数据。

尝试使用:

    @Override
    protected void onPostExecute(Boolean result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);
        if (result != false) 
            expListView.setAdapter( listAdapter ); //this displays the data
    }

并在后台工作人员更改:

listAdapter = new ExpandableListAdapter( MainActivity.this, listDataHeader, listDataChild );

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        listAdapter = new ExpandableListAdapter( MainActivity.this, listDataHeader, listDataChild );
    }
});