【问题标题】:How do I successfully refresh Recyclerview in fragment using SwipeRefreshLayout如何使用 SwipeRefreshLayout 成功刷新片段中的 Recyclerview
【发布时间】:2021-05-27 21:52:11
【问题描述】:

我正在使用 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;
    }
}

【问题讨论】:

  • 这不能回答我提出的问题,因为给出的链接中的相关人员只有显示刷新图标的问题。我的问题是刷新 recylerview 以便可以添加/更新新数据。

标签: android android-recyclerview jsoup android-fragmentactivity swiperefreshlayout


【解决方案1】:
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
    @Override
    public void onRefresh() {
        swipeRefreshLayout.setRefreshing(true);
         content.execute();
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多