问题描述
我正在使用 jsoup 从网站获取数据到 recyclerview 中,但我不太清楚我应该如何使用 swiperefreshlayout 刷新和更新 recyclerview。有人可以帮忙解释一下我在下面的代码中的 onRefresh 中放入了哪些代码才能在下拉时刷新?
Content content = new Content();
content.execute();
swipeRefreshLayout.setonRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
swipeRefreshLayout.setRefreshing(false);
//What do I put in here??
}
});
return root;
}
private class Content extends AsyncTask<Void,Void,Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
progressBar.setVisibility(View.VISIBLE);
//progressBar.startAnimation(AnimationUtils.loadAnimation(getActivity(),android.R.anim.fade_in));
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
progressBar.setVisibility(View.GONE);
//progressBar.startAnimation(AnimationUtils.loadAnimation(getActivity(),android.R.anim.fade_out));
adapter.notifyDataSetChanged();
}
@Override
protected Void doInBackground(Void... voids) {
try {
String url = "https://www.mywebsite.com";
Document doc = Jsoup.connect(url).get();
Elements data = doc.select(".thisurl");
int size = data.size();
Log.d("doc","doc: " + doc);
Log.d("data","data: " + data);
Log.d("size","" + size);
for (int i = 0; i < size; i++) {
String date = doc.select(".b-time").eq(i).text();
String league = doc.select(".card-competition-title").eq(i).text();
String homelogo = data.select(".card-vs-left")
.select("img")
.eq(i)
.attr("src");
String homeTeam = doc.select(".card-vs-left").eq(i).text();
String awaylogo = data.select(".card-vs-right")
.select("img")
.eq(i)
.attr("src");
String awayTeam = doc.select(".card-vs-right").eq(i).text();
String pick = doc.select("span.card-our-prono").eq(i).text();
sportyParseItems.add(new SportyParseItem(date,league,homelogo,homeTeam,awaylogo,awayTeam,pick));
Log.d("items","img: " + homelogo + "img:" + awaylogo + " . title: " + league);
}
} catch (IOException e) {
e.printstacktrace();
}
return null;
}
}
解决方法
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
swipeRefreshLayout.setRefreshing(true);
content.execute();
}
});