Java Listview没有';t使用notifydatasetchanged with Asynctask刷新数据

Java Listview没有';t使用notifydatasetchanged with Asynctask刷新数据,java,android,android-listview,Java,Android,Android Listview,我正在异步任务的后台向ArrayList添加项。在PostExecute上,我创建了一个自定义适配器,在其中传入ArrayList 当我想添加更多项目时,ListView不会刷新。到目前为止,我已经: private class ProgressBlogList extends AsyncTask<String, Integer, String> { ProgressBar blog_progress; ProgressBar laProgress = new Pro

我正在异步任务的后台向ArrayList添加项。在PostExecute上,我创建了一个自定义适配器,在其中传入ArrayList
当我想添加更多项目时,ListView不会刷新。到目前为止,我已经:

private class ProgressBlogList extends AsyncTask<String, Integer, String> {
    ProgressBar blog_progress;
    ProgressBar laProgress = new ProgressBar(getActivity(), null, android.R.attr.progressBarStyle);
    ArrayList<Integer> posts = new ArrayList<Integer>();
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        blog_lista = (ListView) getView().findViewById(R.id.blog_list);
        blog_progress = (ProgressBar) getView().findViewById(R.id.blog_progress);
        if (blog_lista.getVisibility() == View.VISIBLE) {
            blog_lista.addFooterView(laProgress);
        }
    }

    @Override
    protected String doInBackground(String... strings) {
        DatabaseHelper db = new DatabaseHelper(getActivity());
        arraydir = db.getTenItemBlogList(arraydir, id_number);
        for(int i = 0; i<arraydir.size(); i++){
            Integer post = arraydir.get(i).getId_post();
            posts.add(post);
        }
        arrayImages = db.getImagePost(posts);
        id_number = arraydir.size();

        db.close();
        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        try {
        AdapterBlogList adapter = new AdapterBlogList(getActivity(), arraydir,arrayImages);
        blog_lista.setAdapter(adapter);
        adapter.notifyDataSetChanged();
        index = blog_lista.getFirstVisiblePosition();
        View v = blog_lista.getChildAt(0);
        top = (v == null) ? 0 : v.getTop();
        blog_lista.setVisibility(View.VISIBLE);
        blog_lista.removeFooterView(laProgress);
        blog_progress.setVisibility(View.GONE);
        }catch (Exception e) {
            Log.e(e.getMessage(), "Error IVAN::");
        }
        blog_lista.setSelectionFromTop(index, top);
        blog_lista.setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView absListView, int i) {

            }

            @Override
            public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
                if (firstVisibleItem + visibleItemCount == totalItemCount) {
                    if (footerProgress != null) {
                        if (footerProgress.getStatus() != Status.RUNNING) {
                            footerProgress = new ProgressBlogList();
                            footerProgress.execute();
                        }
                        }else{
                        footerProgress = new ProgressBlogList();
                        footerProgress.execute();
                    }
                }
            }
        });
        blog_lista.setSelectionFromTop(index, top);

    }
}
私有类ProgressBlogList扩展了异步任务{
ProgressBar blog_progress;
ProgressBar laProgress=新的ProgressBar(getActivity(),null,android.R.attr.progressBarStyle);
ArrayList posts=新的ArrayList();
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
blog_lista=(ListView)getView().findViewById(R.id.blog_列表);
blog_progress=(ProgressBar)getView().findviewbyd(R.id.blog_progress);
if(blog_lista.getVisibility()==View.VISIBLE){
blog_lista.addFooterView(laProgress);
}
}
@凌驾
受保护的字符串背景(字符串…字符串){
DatabaseHelper db=新的DatabaseHelper(getActivity());
arraydir=db.getTenItemBlogList(arraydir,id_编号);

对于(int i=0;我建议您将管理ListView的活动与AsyncTask分开。每个部分都有其目的,不要混淆。我会将结果ArrayList传递给管理ListView的活动,并通过Intent获得它,创建适配器后,它会更干净,可能会解决您的问题k NOTIFYDATASETCHENGE()在更新传递给列表的同一适配器对象时起作用,但在这里每次都要创建新的适配器对象没有意义。感谢您的回答,但我尝试不重新创建适配器,无法解决我的问题。您好,请发布一个回答,解释您如何解决此问题,并接受它。我面临同样的问题