Android Fragment的复用

本文介绍了一种在Android应用中减少Fragment代码重复的方法。通过创建通用的Fragment并利用参数化实例化,可以有效简化多Tab场景下的开发流程。文章详细展示了如何使用Volley发起网络请求、解析响应,并动态加载不同Fragment。

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

        在多个标题栏对应的Fragment中可能会遇到相同的布局。如果对每一个标题栏对应的Fragment都做网络请求以及适配器的代码编写未免显得太过冗余。这时可以在作为用下面的方法减少大量的代码,节省更多开发的时间。


在进行Fragment复用的Activity或Fragment中的添加如下代码:

RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
StringRequest stringRequest = new StringRequest(Urls.BASE_CHINA, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
    //添加Fragment的集合
        fragmentList = new ArrayList<>();
    //添加标题栏标题的集合
        titlelist = new ArrayList<>();
        for (int i = 0; i < tablist.size(); i++) {
            String title = tablist.get(i).getTitle();
      //添加标题
            titlelist.add(title);
      //获取到每一个Fragment对应的url
            utlList.add(tablist.get(i).getUrl());
      //添加作为复用的Fragment对应的url
            fragmentList.add(JingBianFragment.newInstance(utlList.get(i)));


        }
    //Fragment与Tablayout联用的适配器适配
        TabAdapter tabAdapter = new TabAdapter(getChildFragmentManager(), titlelist, fragmentList);
        vp.setCurrentItem(0);
        vp.setAdapter(tabAdapter);
        tab.setupWithViewPager(vp);

    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {

    }
});
requestQueue.add(stringRequest);
在作为具体复用的Fragment中:

//定义一个静态方法

public static JingBianFragment newInstance(String url){
    JingBianFragment jingBianFragment = new JingBianFragment();
    Bundle bundle = new Bundle();
    bundle.putString("key",url);
    jingBianFragment.setArguments(bundle);
    return jingBianFragment;
}
//在初始化数据的方法中添加这一行代码:

String key = (String) getArguments().get("key");

简单几步解决多个Fragment的代码编写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值