在Fragment页面实现 多条目加载 获取网络数据

本博客介绍了一个名为 SheHuiFragment 的 Android 应用组件,该组件使用 XListView 实现社会新闻列表的刷新与加载更多功能。通过 HttpUtils 请求网络数据并解析 JSON 结果,更新 UI 显示最新的新闻列表。

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

public class SheHuiFragment extends Fragment implements XListView.IXListViewListener {
    // ?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10
    private static final String TAG = "SheHuiFragment----";
    private XListView shehui_listview;
    private int page = 10;
    private static List<SheHuiBean.NewslistBean> newslist = new ArrayList<>();
    private MyAdapter myAdapter;


    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fg_shehui_layout, null);
        shehui_listview = view.findViewById(R.id.shehui_listview);
        shehui_listview.setPullLoadEnable(true);
        shehui_listview.setPullRefreshEnable(true);
        //设置监听
        shehui_listview.setXListViewListener(this);
        return view;
    }


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


    }


    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        myAdapter = new MyAdapter(getActivity(), newslist);
        shehui_listview.setAdapter(myAdapter);
        //请求网络
        getDataFromNet();
    }


    private void getDataFromNet() {
        HttpUtils instance = HttpUtils.getInstance();
        instance.get(HttpConfig.SHEHUI_URL + "?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=" + page);
        Log.d(TAG, "请求也---: " + page);
        instance.setHttpUtilsListener(new HttpUtils.HttpUtilListener() {
            @Override
            public void getSuccess(String json) {
                Log.d(TAG, "getSuccess: " + json);
                Gson gson = new Gson();
                SheHuiBean sheHuiBean = gson.fromJson(json, SheHuiBean.class);
                //设置适配器
                List<SheHuiBean.NewslistBean> newslist1 = sheHuiBean.getNewslist();
                //判断是初次加载,还是刷新,还是上啦加载更多
                //这里的参数不是page 而是数据的数量,所以每次得清一下。
//                if (page == 10) {
                    newslist.clear();
                    shehui_listview.stopRefresh();
//                }
                newslist.addAll(newslist1);


                //刷新数据
                myAdapter.notifyDataSetChanged();
                shehui_listview.stopLoadMore();
            }


            @Override
            public void getError(String error) {
                Log.d(TAG, "getError: " + error);
            }
        });
    }


    //刷新
    @Override
    public void onRefresh() {
        page = 10;
        getDataFromNet();
    }


    //加载更多
    @Override
    public void onLoadMore() {
        page += 10;
        getDataFromNet();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值