例:
FrgamenFenleiFragment 分类页面
public class FrgamenFenleiFragment extends Fragment {
private View view;
private RecyclerView mLeftrlv;
private RecyclerView mRightrlv;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.frgamen_fenlei, null);
initView(inflate);
return inflate;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getleft();
getright(1);
}
private void getleft() {
String leftpath="https://www.zhaoapi.cn/product/getCatagory";
mLeftrlv.setLayoutManager(new LinearLayoutManager(getActivity(), OrientationHelper.VERTICAL,false));
OkHttp3Util_03.doGet(leftpath, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
final Left left = new Gson().fromJson(string, Left.class);
final List<Left.DataBean> data = left.getData();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
LeftAdapter leftAdapter=new LeftAdapter(getContext(),data);
mLeftrlv.setAdapter(leftAdapter);
leftAdapter.SetOnItemClickListener(new LeftAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
int cid = data.get(position).getCid();
getright(cid);
}
});
}
});
}
});
}
private void getright(final int right) {
String rightqian = "https://www.zhaoapi.cn/product/getProductCatagory?cid="+right;
mRightrlv.setLayoutManager(new LinearLayoutManager(getActivity(), OrientationHelper.VERTICAL,false));
OkHttp3Util_03.doGet(rightqian, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
RightOut rightOut = new Gson().fromJson(string, RightOut.class);
final List<RightOut.DataBean> data = rightOut.getData();
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
RightAdapter rightAdapter = new RightAdapter(getActivity(),data);
mRightrlv.setAdapter(rightAdapter);
}
});
}
});
}
private void initView(View inflate) {
mLeftrlv = (RecyclerView) inflate.findViewById(R.id.leftrlv);
mRightrlv = (RecyclerView) inflate.findViewById(R.id.rightrlv);
}
}
frgamen_fenlei 分类页面布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="0dp"
android:layout_weight="3"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:layout_width="200dp"
android:id="@+id/leftrlv"
android:layout_centerHorizontal="true"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:layout_width="600dp"
android:id="@+id/rightrlv"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</RelativeLayout>
</LinearLayout>
OkHttp3Util_03 网络工具类:
public class OkHttp3Util_03 {
/**
* 懒汉 安全 加同步
* 1.私有的静态成员变量 只声明不创建
* 2.私有的构造方法
* 3.提供返回实例的静态方法
*/
private static OkHttpClient okHttpClient = null;
private OkHttp3Util_03() {
}
public static OkHttpClient getInstance() {
if (okHttpClient == null) {
//加同步安全
synchronized (OkHttp3Util_03.class) {
if (okHttpClient == null) {
//okhttp可以缓存数据....指定缓存路径
File sdcache = new File(Environment.getExternalStorageDirectory(), "cache");
//指定缓存大小
int cacheSize = 10 * 1024 * 1024;
okHttpClient = new OkHttpClient.Builder()//构建器
.connectTimeout(15, TimeUnit.SECONDS)//连接超时
.writeTimeout(20, TimeUnit.SECONDS)//写入超时
.readTimeout(20, TimeUnit.SECONDS)//读取超时
.addInterceptor(new CommonParamsInterceptor())//添加应用拦截器的方法
.cache(new Cache(sdcache.getAbsoluteFile(), cacheSize))//设置缓存
.build();
}
}
}
return okHttpClient;
}
/**
* get请求
* 参数1 url
* 参数2 回调Callback
*
* oldUrl表示老的地址,,,是没封装公共参数之前的地址....公共参数指的是source=android
*
*/
public static void doGet(String oldUrl, Callback callback) {
//创建OkHttpClient请求对象
OkHttpClient okHttpClient = getInstance();
//创建Request
Request request = new Request.Builder().url(oldUrl).build();
//得到Call对象
Call call = okHttpClient.newCall(request);
//执行异步请求
call.enqueue(callback);
}
/**
* post请求
* 参数1 url
* 参数2 Map<String, String> params post请求的时候给服务器传的数据
* add..("","")
* add()
*/
public static void doPost(String url, Map<String, String> params, Callback callback) {
//创建OkHttpClient请求对象
OkHttpClient okHttpClient = getInstance();
//3.x版本post请求换成FormBody 封装键值对参数
FormBody.Builder builder = new FormBody.Builder();
//遍历集合,,,map集合遍历方式
for (String key : params.keySet()) {
builder.add(key, params.get(key));
}
//创建Request....formBody...new formBody.Builder()...add()....build()
Request request