package com.bawie.niu.http;
import android.os.Environment;
import android.os.Handler;
import android.util.Log;
import com.google.gson.Gson;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import okhttp3.Cache;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class OKHttp
{
private OkHttpClient client;
private static volatile OKHttp instance;
private Handler handler = new Handler();
//创建拦截器
private Interceptor getAppInterceptor()
{
Interceptor interceptor= new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Log.e("++++++","拦截前");
Response response = chain.proceed(request);
Log.e("++++++","拦截后");
return response;
}
};
return interceptor;
}
//添加拦截器
private OKHttp()
{
File file = new File(Environment.getExternalStorageDirectory(), "cache1");
client = new OkHttpClient().newBuilder()
.readTimeout(3000,TimeUnit.SECONDS)
.connectTimeout(3000,TimeUnit.SECONDS)
.addInterceptor(getAppInterceptor())
.cache(new Cache(file,10*1024))
.build();
}
//创建单例
public static OKHttp getInstance()
{
if(instance == null)
{
synchronized (OKHttp.class)
{
if(null == instance)
{
instance = new OKHttp();
}
}
}
return instance;
}
//封装doget方法
public void doGet(String url, final Class clazz, final NetCallBack netCallBack)
{
// 2. 创建一个请求对象
Request request = new Request.Builder()
.get()
.url(url)
.build();
//创建call对象
Call call = client.newCall(request);
call.enqueue(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();
Gson gson = new Gson();
final Object o = gson.fromJson(string, clazz);
handler.post(new Runnable() {
@Override
public void run() {
netCallBack.LoadSuccess(o);
}
});
}
});
}
//封装dopost请求
public void doPost(String url, final Class clazz, String name,String pwd, final NetCallBack netCallBack)
{
//新建okhttp对象
client = new OkHttpClient();
/**
* 通过体传值
*/
FormBody build = new FormBody.Builder()
.add("phone", name)
.add("pwd", pwd)
.build();
Request request = new Request.Builder()
.url(url)
.post(build)
.build();
Call call = client.newCall(request);
call.enqueue(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();
Gson gson = new Gson();
final Object o = gson.fromJson(string, clazz);
handler.post(new Runnable() {
@Override
public void run() {
netCallBack.LoadSuccess(o);
}
});
}
});
}
public interface NetCallBack{
void LoadSuccess(Object obj);
void LoadFail();
}
}
package com.bawie.niu.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bawie.niu.R;
import com.bawie.niu.bean.Baner_Bean;
import com.bawie.niu.bean.Show_Bean;
import com.bumptech.glide.Glide;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import com.stx.xhb.xbanner.XBanner;
import java.util.List;
/**
-
@Author:asus
-
@E-mail: 945574298@163.com
-
@Date:2019/3/27 14:06
-
@Description:描述信息
*/
public class Show_Adapter extends XRecyclerView.Adapter<XRecyclerView.ViewHolder> {
Context context;
Show_Bean show_bean;
Baner_Bean baner_bean;
private BannerHolder bannerHolder;
private RxxpHolder rxxpHolder;
private MlssViewHodler mlssViewHodler;
private PzshViewHolder pzshViewHolder;
private LinearLayoutManager linearLayoutManager;private List<Show_Bean.ResultBean.RxxpBean.CommodityListBean> commodityList1;
private List<Show_Bean.ResultBean.MlssBean.CommodityListBeanXX> commodityList2;
private List<Show_Bean.ResultBean.PzshBean.CommodityListBeanX> commodityList3;
private List<Baner_Bean.ResultBean> result;public Show_Adapter(Context context, Show_Bean show_bean,Baner_Bean baner_bean) {
this.context = context;
this.show_bean = show_bean;
this.baner_bean = baner_bean;}
private final int Banner_TYPE = 0;
private final int RXXP_TYPE=1;
private final int MLSS_TYPE=2;
private final int PZSH_TYPE=3;@NonNull
@Override
public XRecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if(iBanner_TYPE){
View view = LayoutInflater.from(context).inflate(R.layout.banner_item, null);
bannerHolder = new BannerHolder(view);
return bannerHolder;
}
else if(iRXXP_TYPE){
View view = LayoutInflater.from(context).inflate(R.layout.rxxp_item, null);
rxxpHolder = new RxxpHolder(view);
return rxxpHolder;
}
else if(iMLSS_TYPE){
View view = LayoutInflater.from(context).inflate(R.layout.mlss_item, null);
mlssViewHodler = new MlssViewHodler(view);
return mlssViewHodler;
}
else if(iPZSH_TYPE){
View view = LayoutInflater.from(context).inflate(R.layout.pzsh_item, null);
pzshViewHolder = new PzshViewHolder(view);
return pzshViewHolder;
}
return null;
}@Override
public void onBindViewHolder(@NonNull XRecyclerView.ViewHolder viewHolder, int i) {
if(viewHolder instanceof BannerHolder){
BannerHolder bannerHolder= (BannerHolder) viewHolder;
result = baner_bean.getResult();
bannerHolder.banner.setData(result,null);
bannerHolder.banner.setmAdapter(new XBanner.XBannerAdapter() {
@Override
public void loadBanner(XBanner banner, View view, int position) {
Glide.with(context).load(result.get(position).getImageUrl()).into((ImageView) view);
}
});
}else if(viewHolder instanceof RxxpHolder){
RxxpHolder rxxpHolder= (RxxpHolder) viewHolder;
rxxpHolder.one_text.setText(show_bean.getResult().getRxxp().getName());
linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
rxxpHolder.one_list.setLayoutManager(linearLayoutManager);
commodityList1 = show_bean.getResult().getRxxp().getCommodityList();
RxxpAdapter rxxpAdapter = new RxxpAdapter(context, commodityList1);
rxxpHolder.one_list.setAdapter(rxxpAdapter);} else if(viewHolder instanceof MlssViewHodler){ MlssViewHodler mlssViewHodler= (MlssViewHodler) viewHolder; mlssViewHodler.two_text.setText(show_bean.getResult().getMlss().getName()); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context); mlssViewHodler.two_list.setLayoutManager(linearLayoutManager); commodityList2 = show_bean.getResult().getMlss().getCommodityList(); MlssAdapter mlssAdapter = new MlssAdapter(context, commodityList2); mlssViewHodler.two_list.setAdapter(mlssAdapter); } else if(viewHolder instanceof PzshViewHolder){ PzshViewHolder pzshViewHolder= (PzshViewHolder) viewHolder; pzshViewHolder.three_text.setText(show_bean.getResult().getPzsh().getName()); pzshViewHolder.three_list.setLayoutManager(new GridLayoutManager(context,2)); commodityList3 = show_bean.getResult().getPzsh().getCommodityList(); PzshAdapter pzshAdapter = new PzshAdapter(context, commodityList3); pzshViewHolder.three_list.setAdapter(pzshAdapter); }
}
@Override
public int getItemCount() {
return 4;
}
@Override
public int getItemViewType(int position) {
if(position0){
return Banner_TYPE;
}else if(position1){
return RXXP_TYPE;
}
else if(position2){
return MLSS_TYPE;
}
else if(position3){
return PZSH_TYPE;
}
return super.getItemViewType(position);}
//自定义viewHlder
public class BannerHolder extends RecyclerView.ViewHolder{private final XBanner banner; public BannerHolder(@NonNull View itemView) { super(itemView); banner = itemView.findViewById(R.id.xbanner); }
}
//热销新品
public class RxxpHolder extends RecyclerView.ViewHolder{
private final TextView one_text;
private final RecyclerView one_list;
public RxxpHolder(@NonNull View itemView) {
super(itemView);
one_text = itemView.findViewById(R.id.one_text);
one_list = itemView.findViewById(R.id.one_list);
}
}
//魔力时尚
public class MlssViewHodler extends RecyclerView.ViewHolder{
private final TextView two_text;
private final RecyclerView two_list;
public MlssViewHodler(@NonNull View itemView) {
super(itemView);
two_text = itemView.findViewById(R.id.two_text);
two_list = itemView.findViewById(R.id.two_list);
}
}
//品质生活
public class PzshViewHolder extends RecyclerView.ViewHolder{
private final TextView three_text;
private final RecyclerView three_list;
public PzshViewHolder(@NonNull View itemView) {
super(itemView);
three_text = itemView.findViewById(R.id.three_text);
three_list = itemView.findViewById(R.id.three_list);
}
}
}
package com.bawie.niu.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bawie.niu.R;
import com.bawie.niu.bean.Show_Bean;
import com.bumptech.glide.Glide;
import java.util.List;
/**
-
@Author:asus
-
@E-mail: 945574298@163.com
-
@Date:2019/3/27 14:54
-
@Description:描述信息
*/
public class PzshAdapter extends RecyclerView.Adapter<PzshAdapter.ViewHolder> {
Context context;
List<Show_Bean.ResultBean.PzshBean.CommodityListBeanX> list;public PzshAdapter(Context context, List<Show_Bean.ResultBean.PzshBean.CommodityListBeanX> list) {
this.context = context;
this.list = list;
}@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.three_item, null);
return new ViewHolder(view);}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
viewHolder.name.setText(list.get(i).getCommodityName());
viewHolder.price.setText(list.get(i).getPrice());
Glide.with(context).load(list.get(i).getMasterPic()).into(viewHolder.img);}
@Override
public int getItemCount() {
return list.size();
}public class ViewHolder extends RecyclerView.ViewHolder {
ImageView img; TextView name; TextView price; public ViewHolder(@NonNull View itemView) { super(itemView); img = itemView.findViewById(R.id.layout_three_image); price = itemView.findViewById(R.id.layout_three_text1); name = itemView.findViewById(R.id.layout_three_text2); }
}
}
package com.bawie.niu.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.bawie.niu.R;
import com.bawie.niu.adapter.Show_Adapter;
import com.bawie.niu.bean.Baner_Bean;
import com.bawie.niu.bean.Show_Bean;
import com.bawie.niu.mvp.presenter.SPresenterImpl;
import com.bawie.niu.mvp.view.SView;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import com.stx.xhb.xbanner.XBanner;
/**
-
@Author:asus
-
@E-mail: 945574298@163.com
-
@Date:2019/3/23 9:43
-
@Description:描述信息
*/
public class Frag_01 extends Fragment implements SView {private XRecyclerView recyclerView;
private SPresenterImpl sPresenter;
private LinearLayoutManager linearLayoutManager;private Show_Bean show_bean;
private XBanner banner;
private Baner_Bean baner_bean;@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_01, container, false);
recyclerView = view.findViewById(R.id.xrecyleview);
banner = view.findViewById(R.id.xbanner);
sPresenter = new SPresenterImpl();
sPresenter.Attacth(this);
sPresenter.getppp();
sPresenter.getbanner();
//布局管理器
linearLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(linearLayoutManager);return view;
}
@Override
public void getview(Object data) {
show_bean = (Show_Bean) data;
Show_Adapter show_adapter = new Show_Adapter(getActivity(), show_bean,baner_bean);
recyclerView.setAdapter(show_adapter);
}@Override
public void getbann(Object sdata) {
baner_bean = (Baner_Bean) sdata;
Show_Adapter show_adapter = new Show_Adapter(getActivity(), show_bean, baner_bean);
recyclerView.setAdapter(show_adapter);
}
}