频道管理----fragment

public class NewsFragment extends BaseFragment {
    private PullToRefreshListView plvNews;
    public static final String ARGUMENT = "argument";
    private String param;
    private int page = 1;
    private boolean isLoadMore = false;

    private List<News.DataBean> list;
    private NewsAdapter adapter;

    private Handler handler = new Handler();
    @Override
    protected int getContentView() {
        return R.layout.fragment_news;
    }

    @Override
    protected void initView(View v) {

        plvNews = v.findViewById(R.id.plv_news);
    }

    @Override
    protected void initData() {
        super.initData();
        Bundle bundle = getArguments();
        param = bundle.getString(ARGUMENT);
        plvNews.setMode(PullToRefreshBase.Mode.BOTH);
        list = new ArrayList<>();
        adapter = new NewsAdapter(list,mContext);
        plvNews.setAdapter(adapter);

        if (TextUtils.isEmpty(param)){
            return;
        }
    }

    @Override
    protected void setListener() {
        super.setListener();
        plvNews.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                page = 1;
                isLoadMore = false;
                getData();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                page++;
                isLoadMore = true;
                getData();
            }
        });
    }

    @Override
    protected void setMoreAction() {
        super.setMoreAction();
        getData();
    }

    private void getData() {
        if (TextUtils.isEmpty(param)){
            return;
        }
        String url = ServerUrl.NEWS_URL + "type=" + param + "&page=" + page;
        new AsyncTask<String, Integer, String>() {
            @Override
            protected String doInBackground(String... strings) {
                return HttpUtils.getHttpUrlConnection(strings[0]);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        plvNews.onRefreshComplete();
                    }
                },2000);

                Gson gson = new Gson();
                News news = gson.fromJson(s, News.class);
                if (news != null){
                    List<News.DataBean> data = news.getData();
                    if (data != null){
                        if (!isLoadMore) {
                            list.clear();
                        }
                    }
                    list.addAll(data);
                    adapter.notifyDataSetChanged();
                }
            }
        }.execute(url);
    }

    public static NewsFragment newInstance(String text){
        NewsFragment fragment = new NewsFragment();
        Bundle bundle = new Bundle();
        bundle.putString(ARGUMENT , text);
        fragment.setArguments(bundle);
        return fragment;
    }
}

猜你喜欢

转载自blog.csdn.net/yz1743585120/article/details/82797104