上拉刷新/下拉加载/+多条目加载

本文介绍了一个名为Fragment01的Android应用组件类,该类继承自Fragment并实现了新闻列表的加载与显示功能。通过XListView组件实现上下拉刷新加载更多功能,并使用自定义适配器MyBase01来展示数据。文章详细描述了Fragment01的初始化过程、网络请求及数据解析流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package bwei.com.zuoye_xlistview.fragments;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

import bwei.com.zuoye_xlistview.R;
import bwei.com.zuoye_xlistview.adapter.MyBase01;
import bwei.com.zuoye_xlistview.bean.GuoNeiBean;
import bwei.com.zuoye_xlistview.https.ConHttps;
import bwei.com.zuoye_xlistview.utils.HttpUtils;
import bwei.com.zuoye_xlistview.view.XListView;

public class Fragment01 extends Fragment{


    private XListView f1_xlistview;

    private static int page=10;
    private List<GuoNeiBean.NewslistBean> list=new ArrayList<>();
    private MyBase01 adapter;


    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.shehuifragment, container, false);
       //获取资源id
        f1_xlistview = view.findViewById(R.id.f1_xlistview);
        return view;
    }


    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);


        adapter = new MyBase01(getActivity(),list);
        f1_xlistview.setAdapter(adapter);
        InitView();

    }
    //设置XListView
    private void InitView() {
          f1_xlistview.setPullRefreshEnable(true);
          f1_xlistview.setPullLoadEnable(true);
         f1_xlistview.setXListViewListener(new XListView.IXListViewListener() {
             @Override
             public void onRefresh() {
                  page=10;
                  getDataForNet();
             }

             @Override
             public void onLoadMore() {
            page+=10;
            getDataForNet();
             }
         });
         //设置适配器
        adapter = new MyBase01(getActivity(),list);
        f1_xlistview.setAdapter(adapter);
    }
  //获取网络数据
    public void getDataForNet() {

        HttpUtils utils = HttpUtils.getInstance();
        String u = ConHttps.SHEHUI_URL + "key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=" + page;
        utils.get(u);
        utils.setHttpUtilsListener(new HttpUtils.HttpUtilListener() {
            @Override
            public void getSuccess(String json) {
                Gson gson=new Gson();
                GuoNeiBean guoNeiBean = gson.fromJson(json, GuoNeiBean.class);
                List<GuoNeiBean.NewslistBean> newslist = guoNeiBean.getNewslist();

                if (page == 10){
                    list.clear();
                    f1_xlistview.stopRefresh();
                }
                 list.addAll(newslist);
                //刷新适配器
                adapter.notifyDataSetChanged();
                f1_xlistview.stopLoadMore();
            }
            @Override
            public void getError(String error) {

            }
        });

    }

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser){
             getDataForNet();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值