我有一个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}}
答案 0 :(得分:0)
问题是你没有改变适配器上的数据。 应用程序上的数据应该有 set 方法。
MyApplication.articles = p;
<强> adapter.setData(P); 强>
adapter.notidyDataSetChanged();
类似这样的事情