我自己写的一个 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 简单复用。请勿吐槽。我也是刚学些 最后附上 请求回来的截图
网友评论