单击按钮时,android viewtreeObserver再次加载

时间:2015-06-05 09:29:53

标签: android listview

我有一个ViewTreeObserver,我想点击按钮并再次重新加载这个ListView 这是我的viewTreeObserver代码:

    getArticles getarticles = new getArticles();
    getarticles.execute("2",tag);

当我点击按钮时,我想获得新文章列表并使用新的arrayList重新加载此ListView。我怎么能这样做?

请注意 MyApplication.articles =文章的数据列表

at on Click我称之为asynk任务:

public class getArticles extends AsyncTask<String, Void, ArrayList<Article>>
{
    private ProgressDialog pd;
    ArrayList<Article> array = new ArrayList<Article>();
    @Override

    protected void onPreExecute()
    {
          pd=ProgressDialog.show(MainActivity.this, "", MainActivity.this.getResources().getString(R.string.loading), false);
    }

    @Override
    protected ArrayList<Article> doInBackground(String... params) {


           if(Actions.isNetworkAvailable(MainActivity.this))
           {

           Connection.disableSSLCertificateChecking();
             String    url=getResources().getString(R.string.serviceLink)+getResources().getString(R.string.getArticleIssueCat) + "issueId=" + params[0] + "&categoryId=" + params[1]; 

            Connection conn=new Connection( url);


                ArticleXmlPullParser parser = new ArticleXmlPullParser();

                        array=parser.parse(conn.getInputStream());


           }
        return array;
    }


    @Override
    protected void onPostExecute(final ArrayList<Article> p)
    {
         MyApplication.articles = p;
        adapter.notidyDataSetChanged();//here i cann notify for adapter of listview but nothing changed
         try{
               pd.dismiss();
               }catch(Exception e){

               }
    }

}

AsynkTask的代码:

{{1}}

1 个答案:

答案 0 :(得分:0)

问题是你没有改变适配器上的数据。 应用程序上的数据应该有 set 方法。

  

MyApplication.articles = p;

     

<强> adapter.setData(P);

     

adapter.notidyDataSetChanged();

类似这样的事情