我有一個ListView
,其上實現了一個SwipeRefreshLayout
。我想要做的是在用戶向下滑動時更新ListView
。我試過尋找不同的選擇,但不幸的是我無法找到解決方案。正在更新桌面上的列表視圖
重新加載Fragment
或onCreate
函數會更好嗎?
這裏是我的代碼
public class NewsTab extends Fragment implements OnRefreshListener{
final LinkedList<News> listnews = new LinkedList<News>();
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.news_tab, container, false);
swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipe_refresh_layout);
swipeRefreshLayout.setOnRefreshListener(this);
newslist = (ListView) view.findViewById(R.id.displaynews);
populatelist(listnews);
adapter = new CustomAdapter(getActivity(),listnews);
newslist.setAdapter(adapter);
return view;
}
public void onRefresh() {
swipeRefreshLayout.setRefreshing(true);
new StartNewsLoad().execute("");
}
private class StartNewsLoad extends AsyncTask<String, Void, String> {
//ProgressDialog pd = null;
protected String doInBackground(String... params) {
reloadNews();
loadTopNews();
//NewsTab.listnews = new LinkedList<News>();
return null;
}
protected void onPostExecute(String result) {
adapter = new CustomAdapter(getActivity(),listnews);
adapter.notifyDataSetChanged();
swipeRefreshLayout.setRefreshing(false);
}
}
/// ANSWER
我找到了答案!我在我的服裝適配器中添加了以下代碼行,並將其稱爲adapter.refresh();
public void refresh(LinkedList<News> newsList)
{
this.results = newsList;
notifyDataSetChanged();
}
謝謝大家的幫助!
您需要在通知它之前在ListView上設置適配器 –
除此之外,'listnews'從哪裏來?請顯示[mcve] –
@ cricket_007感謝您的回覆listnews是我創建的全球鏈表,請參閱上面的編輯 – paul590