美文网首页
2019-01-30

2019-01-30

作者: 寝室有人 | 来源:发表于2019-01-30 11:36 被阅读0次

    我自己写的一个 Demo  小白学习

    1.导入 xUtils 依赖    

    implementation'org.xutils:xutils:3.3.36'

    2.记得在MyApplication 的 onCreate()方法里初始化。要不然会 请求不到的。 还要在 AndroidManifest.xml  中指定 name

    下面写 Fragment  的使用 

    private ArrayListmFragment;//存储 Fragment

    private ArrayListmList;//  存储 TabLayout 文字

    1.在Oncreate方法里 实例化

    mFragment =new ArrayList<>();

    mList =new ArrayList<>();

    2.添加 tablayout  头文字

    mList.add("全部订单");

    mList.add("消费记录");

    mList.add("充值记录");

    mList.add("好友转入");

    mList.add("好友转出");

    mList.add("提现记录");

    3.遍历 mList   创建 Fragment   利用  Bundle 传递你要的参数

    for (int i =0; i<mList.size;i++){

    MsgFragment msgFragment =new MsgFragment();

    String string =mList.get(i).toString();

    if (string.equals("全部订单")){

    Bundle bundle =new Bundle();

    bundle.putString("tage","");

    msgFragment.setArguments(bundle);

    }

    if (string.equals("消费记录")){

    Bundle bundle =new Bundle();

    bundle.putString("tage","5");

    msgFragment.setArguments(bundle);

    }

    if (string.equals("充值记录")){

    Bundle bundle =new Bundle();

    bundle.putString("tage","3");

    msgFragment.setArguments(bundle);

    }

    if (string.equals("好友转入")){

    Bundle bundle =new Bundle();

    bundle.putString("tage","8");

    msgFragment.setArguments(bundle);

    }

    if (string.equals("好友转出")){

    Bundle bundle =new Bundle();

    bundle.putString("tage","6");

    msgFragment.setArguments(bundle);

    }

    if (string.equals("提现记录")){

    Bundle bundle =new Bundle();

    bundle.putString("tage","9");

    msgFragment.setArguments(bundle);

    }

    mFragment.add(msgFragment);

    }

    //下面的是 TabLayout +ViewPager  适配器

    ViewPagerAdapter viewPagerAdapter =new ViewPagerAdapter(getSupportFragmentManager(),mFragment,mList);

    view_pager.setAdapter(viewPagerAdapter);

    在往下我们要到 Fragment 去接收我们的参数。

    Bundle arguments = getArguments();

    String tage = arguments.getString("tage");

    下一步我们做网络请求:

    定义一个方法去 做请求

    postPost(tage);  tage 就是我们传过来的标识

    private void postPost(String tage) {

    mList.clear();// 每次请求都清空 集合

    RequestParams params =new RequestParams(ApiUtils.URL+ApiUtils.ORDER);// 这个是请求的地址

    params.addBodyParameter("page","");// 这个是需要传到后台的参数

    params.addBodyParameter("ordertype",tage);// 这个是需要传到后台的参数

    params.addBodyParameter("pagesize","");// 这个是需要传到后台的参数

    // 下面这个是token 不需要的 可以不写

    params.addHeader("accesstoken",SpUtils.getString(getContext(),"token",""));

    x.http().request(HttpMethod.POST, params,new Callback.CacheCallback() {

    private RecyAdapterrecyAdapter;

    @Override// 这里是请求成功的回调

            public void onSuccess(String result) {

    Log.e("result",result.toString());

    try {

    JSONObject jsonObject =new JSONObject(result.toString());

    if (jsonObject.optString("code").equals("1")){

    Gson gson =new Gson();

    Benas benas = gson.fromJson(result, Benas.class);

    List data = benas.getData();

    mList.addAll(data);

    recyAdapter =new RecyAdapter(R.layout.item_order,mList);

    recyclerViewADAP.setAdapter(recyAdapter);

    }

    }catch (JSONException e) {

    e.printStackTrace();

    }

    }

    @Override

            public void onError(Throwable ex,boolean isOnCallback) {

    }

    @Override

            public void onCancelled(CancelledException cex) {

    }

    @Override

            public void onFinished() {

    }

    @Override

            public boolean onCache(String result) {

    return false;

    }

    });

    }

    结束!  Fragment 简单复用。请勿吐槽。我也是刚学些 最后附上 请求回来的截图

    相关文章

      网友评论

          本文标题:2019-01-30

          本文链接:https://www.haomeiwen.com/subject/mkbqsqtx.html