2019-01-30

我自己写的一个 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

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)