//主Main布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <android.support.v7.widget.RecyclerView android:id="@+id/type_rvleft" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="2"></android.support.v7.widget.RecyclerView> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="20dp" android:layout_weight="1" android:orientation="vertical"> <ImageView android:id="@+id/iv" android:layout_width="match_parent" android:background="@drawable/w1" android:layout_height="120dp" /> <android.support.v7.widget.RecyclerView android:id="@+id/type_rvright" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1"></android.support.v7.widget.RecyclerView> </LinearLayout> </LinearLayout>
//classleft_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/tv" android:text="213" android:gravity="center" android:layout_width="match_parent" android:layout_height="50dp" /> </LinearLayout>
//classright_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="4dp" android:layout_height="30dp" android:background="@color/colorAccent" /> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_gravity="center_vertical" android:layout_marginLeft="20dp" android:enabled="true" android:text="234" android:textSize="22sp" /> </RelativeLayout> <android.support.v7.widget.RecyclerView android:id="@+id/item_rlv" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> </ScrollView> </LinearLayout>
//classright_item2.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:padding="15dp" android:orientation="vertical"> <ImageView android:id="@+id/iv" android:layout_width="70dp" android:layout_height="70dp" /> <TextView android:id="@+id/tv" android:text="123" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
//model
public interface ClassLeftModel { void classleft(OnNetListener onNetListener); }
public interface ClassRightModel { void classright1(OnNetListener onNetListener); // void classright2(String cid, OnNetListener onNetListener); void classright3(String cid,OnNetListener onNetListener); }
public class ClassLeftModelImp implements ClassLeftModel { @Override public void classleft(final OnNetListener onNetListener) { OkhttpUtils1.getInstance().doGet(Api.CATAGORY_URL, new OnNetListener() { @Override public void onSuccess(String result) { SoduBean soduBean = new Gson().fromJson(result, SoduBean.class); if ("0".equals(soduBean.getCode())) { onNetListener.onSuccess(result); } } @Override public void onFailed(Exception e) { onNetListener.onFailed(e); } }); } }
public class ClassRightModelImp implements ClassRightModel { @Override public void classright1(final OnNetListener onNetListener) { OkhttpUtils1.getInstance().doGet(Api.PRODUCTCATAGORY_URL, new OnNetListener() { @Override public void onSuccess(String result) { ProductCatagoryBean productCatagoryBean = new Gson().fromJson(result, ProductCatagoryBean.class); if ("0".equals(productCatagoryBean.getCode())) { onNetListener.onSuccess(result); } } @Override public void onFailed(Exception e) { } }); } @Override public void classright3(String cid, final OnNetListener onNetListener) { //创建Map集合 Map<String, String> params = new HashMap<>(); params.put("cid", cid); OkhttpUtils.getInstance().login(Api.PRODUCTCATAGORY_URL, params, new OnNetListener() { @Override public void onSuccess(String result) { Log.e("TAG",result); ProductCatagoryBean productCatagoryBean = new Gson().fromJson(result, ProductCatagoryBean.class); if ("0".equals(productCatagoryBean.getCode())) { onNetListener.onSuccess(result); } } @Override public void onFailed(Exception e) { onNetListener.onFailed(e); } }); } }
//presenter
public interface ClassLeftPresenter { void classleft(); }
public interface ClassRightPresenter { void classright1(String cid); // void classright2(); // void classright3(String cid); }
public class ClassLeftPresenterImp implements ClassLeftPresenter { ClassLeftView leftView; ClassLeftModelImp classLeftModelImp; public ClassLeftPresenterImp(ClassLeftView leftView) { this.leftView = leftView; classLeftModelImp = new ClassLeftModelImp(); } @Override public void classleft() { OkhttpUtils1.getInstance().doGet(Api.CATAGORY_URL, new OnNetListener() { @Override public void onSuccess(String result) { SoduBean soduBean = new Gson().fromJson(result, SoduBean.class); if(leftView!=null){ leftView.show(soduBean.getData()); } } @Override public void onFailed(Exception e) { } }); } }
public class ClassRightPresenterImp implements ClassRightPresenter { ClassRightView classRightView; ClassRightModelImp classRightModelImp; public ClassRightPresenterImp(ClassRightView classRightView) { this.classRightView = classRightView; classRightModelImp = new ClassRightModelImp(); } @Override public void classright1(String cid) { OkhttpUtils1.getInstance().doGet(Api.PRODUCTCATAGORY_URL+"?cid="+cid, new OnNetListener() { @Override public void onSuccess(String result) { ProductCatagoryBean productCatagoryBean = new Gson().fromJson(result, ProductCatagoryBean.class); if(classRightView!=null){ classRightView.show1(productCatagoryBean.getData()); } } @Override public void onFailed(Exception e) { } }); } }
//view
public interface ClassLeftView { void show(List<SoduBean.DataBean> list); }
public interface ClassRightView { void show1(List<ProductCatagoryBean.DataBean> list); // void show2(List<ProductCatagoryBean.DataBean.ListBean> list); // void show2(List<ProductCatagoryBean.DataBean.ListBean> listBeen); // void show3(List<ProductCatagoryBean.DataBean> list); // void showData(List<String> groupList, List<List<ProductCatagoryBean.DataBean.ListBean>> childList); }
//adapter
public class ClassLeftRecyclerViewAdapter extends RecyclerView.Adapter<ClassLeftRecyclerViewAdapter.ClassLeftHolder>{ Context context; List<SoduBean.DataBean> list; public static int tagPosition; public static int getTagPosition() { return tagPosition; } public static void setTagPosition(int tagPosition) { ClassLeftRecyclerViewAdapter.tagPosition = tagPosition; } public ClassLeftRecyclerViewAdapter(Context context, List<SoduBean.DataBean> list) { this.context = context; this.list = list; } @Override public ClassLeftHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.classleft_item, parent, false); final ClassLeftHolder classLeftHolder=new ClassLeftHolder(view); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { recycleViewItemClickListener.recycleViewItemClickListener(classLeftHolder.getPosition(), view, classLeftHolder); } }); return classLeftHolder; } @Override public void onBindViewHolder(ClassLeftHolder holder, int position) { holder.textView.setText(list.get(position).getName()); if (position == getTagPosition()) { holder.itemView.setBackgroundResource(R.color.colorPblBackground); } else { holder.itemView.setBackgroundResource(R.color.colorwhile); } } @Override public int getItemCount() { return list.size(); } class ClassLeftHolder extends RecyclerView.ViewHolder { TextView textView; public ClassLeftHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.tv); } } //声明成员变量 public OnRecycleViewItemClickListener recycleViewItemClickListener; //定义点击接口 public interface OnRecycleViewItemClickListener { void recycleViewItemClickListener(int position, View view, RecyclerView.ViewHolder viewHolder); } //提供set方法 public void setRecycleViewItemClickListener(OnRecycleViewItemClickListener recycleViewItemClickListener) { this.recycleViewItemClickListener = recycleViewItemClickListener; } }
public class ClassRightRecyclerViewAdapter extends RecyclerView.Adapter<ClassRightRecyclerViewAdapter.ClassRightHodel> { private Context context; private List<ProductCatagoryBean.DataBean> list; public ClassRightRecyclerViewAdapter(Context context, List<ProductCatagoryBean.DataBean> list) { this.context = context; this.list = list; } @Override public ClassRightHodel onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.classright_item, parent, false); ClassRightHodel classRightHodel = new ClassRightHodel(view); return classRightHodel; } @Override public void onBindViewHolder(ClassRightHodel holder, int position) { holder.textView.setText(list.get(position).getName()); holder.recyclerView.setLayoutManager(new GridLayoutManager(context,3)); List<ProductCatagoryBean.DataBean.ListBean> listBeen=this.list.get(position).getList(); ClassRightRecyclerAdapter2 classRightRecyclerAdapter2=new ClassRightRecyclerAdapter2(context, this.list.get(position).getList()); holder.recyclerView.setAdapter(classRightRecyclerAdapter2); } @Override public int getItemCount() { return list.size(); } class ClassRightHodel extends RecyclerView.ViewHolder { TextView textView; RecyclerView recyclerView; public ClassRightHodel(View itemView) { super(itemView); textView = itemView.findViewById(R.id.tv); recyclerView = itemView.findViewById(R.id.item_rlv); } } }
public class ClassRightRecyclerAdapter2 extends RecyclerView.Adapter<ClassRightRecyclerAdapter2.ClassRightHolder2>{ private Context context; private List<ProductCatagoryBean.DataBean.ListBean> list; private ClassRightHolder2 classRightHolder2; private View view; public ClassRightRecyclerAdapter2(Context context, List<ProductCatagoryBean.DataBean.ListBean> list) { this.context = context; this.list = list; } @Override public ClassRightHolder2 onCreateViewHolder(ViewGroup parent, int viewType) { view = LayoutInflater.from(context).inflate(R.layout.classright_item2, parent, false); classRightHolder2=new ClassRightHolder2(view); return classRightHolder2; } @Override public void onBindViewHolder(ClassRightHolder2 holder, int position) { holder.textView.setText(list.get(position).getName()); Glide.with(context).load(list.get(position).getIcon()).into(holder.imageView); } @Override public int getItemCount() { return list.size(); } class ClassRightHolder2 extends RecyclerView.ViewHolder { ImageView imageView; TextView textView; public ClassRightHolder2(View itemView) { super(itemView); imageView = itemView.findViewById(R.id.iv); textView = itemView.findViewById(R.id.tv); } } }
//点击的回调
public class RecyclerViewClickListener implements RecyclerView.OnItemTouchListener { private int mLastDownX,mLastDownY; //该值记录了最小滑动距离 private int touchSlop ; private OnItemClickListener mListener; //是否是单击事件 private boolean isSingleTapUp = false; //是否是长按事件 private boolean isLongPressUp = false; private boolean isMove = false; private long mDownTime; //内部接口,定义点击方法以及长按方法 public interface OnItemClickListener { void onItemClick(View view, int position); void onItemLongClick(View view, int position); } public RecyclerViewClickListener(Context context, OnItemClickListener listener){ touchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); mListener = listener; } @Override public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { int x = (int) e.getX(); int y = (int) e.getY(); switch (e.getAction()){ /** * 如果是ACTION_DOWN事件,那么记录当前按下的位置, * 记录当前的系统时间。 */ case MotionEvent.ACTION_DOWN: mLastDownX = x; mLastDownY = y; mDownTime = System.currentTimeMillis(); isMove = false; break; /** * 如果是ACTION_MOVE事件,此时根据TouchSlop判断用户在按下的时候是否滑动了, * 如果滑动了,那么接下来将不处理点击事件 */ case MotionEvent.ACTION_MOVE: if(Math.abs(x - mLastDownX)>touchSlop || Math.abs(y - mLastDownY)>touchSlop){ isMove = true; } break; /** * 如果是ACTION_UP事件,那么根据isMove标志位来判断是否需要处理点击事件; * 根据系统时间的差值来判断是哪种事件,如果按下事件超过1ms,则认为是长按事件, * 否则是单击事件。 */ case MotionEvent.ACTION_UP: if(isMove){ break; } if(System.currentTimeMillis()-mDownTime > 1000){ isLongPressUp = true; }else { isSingleTapUp = true; } break; } if(isSingleTapUp ){ //根据触摸坐标来获取childView View childView = rv.findChildViewUnder(e.getX(),e.getY()); isSingleTapUp = false; if(childView != null){ //回调mListener#onItemClick方法 mListener.onItemClick(childView,rv.getChildLayoutPosition(childView)); return true; } return false; } if (isLongPressUp ){ View childView = rv.findChildViewUnder(e.getX(),e.getY()); isLongPressUp = false; if(childView != null){ mListener.onItemLongClick(childView, rv.getChildLayoutPosition(childView)); return true; } return false; } return false; } @Override public void onTouchEvent(RecyclerView rv, MotionEvent e) { } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } }
//主Main代码
public class FragmentClass extends Fragment implements ClassLeftView, ClassRightView { private View view; private RecyclerView rvleft; private ClassLeftPresenterImp classLeftPresenterImp; private ClassLeftRecyclerViewAdapter classLeftRecyclerViewAdapter; private ClassRightPresenterImp classRightPresenterImp; private RecyclerView rvright; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = View.inflate(getActivity(), R.layout.fragment_class, null); intiData(); return view; } private void intiData() { classLeftPresenterImp = new ClassLeftPresenterImp(this); classLeftPresenterImp.classleft(); rvleft = view.findViewById(R.id.type_rvleft); classRightPresenterImp = new ClassRightPresenterImp(this); rvright = view.findViewById(R.id.type_rvright); } @Override public void show(final List<SoduBean.DataBean> list) { rvleft.setLayoutManager(new LinearLayoutManager(getContext())); classLeftRecyclerViewAdapter = new ClassLeftRecyclerViewAdapter(getContext(), list); rvleft.setAdapter(classLeftRecyclerViewAdapter); classLeftRecyclerViewAdapter.setRecycleViewItemClickListener(new ClassLeftRecyclerViewAdapter.OnRecycleViewItemClickListener() { @Override public void recycleViewItemClickListener(int position, View view, RecyclerView.ViewHolder viewHolder) { classLeftRecyclerViewAdapter.setTagPosition(position); int cid = list.get(position).getCid(); classRightPresenterImp.classright1(cid + ""); classLeftRecyclerViewAdapter.notifyDataSetChanged(); } }); } @Override public void show1(List<ProductCatagoryBean.DataBean> list) { rvright.setLayoutManager(new LinearLayoutManager(getContext())); ClassRightRecyclerViewAdapter classRightRecyclerViewAdapter = new ClassRightRecyclerViewAdapter(getContext(), list); rvright.setAdapter(classRightRecyclerViewAdapter); classRightRecyclerViewAdapter.notifyDataSetChanged(); } }
//网络工具类
public class OkhttpUtils { private static OkhttpUtils instance; private final OkHttpClient okHttpClient; private final Handler handler; private OkhttpUtils() { //创建OkHttpClient对象 okHttpClient = new OkHttpClient(); handler = new Handler(Looper.getMainLooper()); } public static OkhttpUtils getInstance() { if (instance == null) { instance = new OkhttpUtils(); } return instance; } /** * 登录的方法 * * @param url 地址 * @param params 接口的参数 * @param onNetListener 接口回调,把数据返给调用改方法的Activity */ public void login(String url, Map<String, String> params, final OnNetListener onNetListener) { if (params == null) { return; } //创建Requeset对象 FormBody.Builder builder = new FormBody.Builder(); //添加参数 for (Map.Entry<String, String> entry : params.entrySet()) { builder.add(entry.getKey(), entry.getValue()); } FormBody formBody = builder.build(); Request request = new Request.Builder() .url(url) .post(formBody) .build(); //请求 okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { onNetListener.onFailed(e); } @Override public void onResponse(Call call, final Response response) throws IOException { //把回调放到主线程里 handler.post(new Runnable() { @Override public void run() { //已经在主线程运行了 final String string; try { //拿到服务器返回的json字符串 string = response.body().string(); onNetListener.onSuccess(string); } catch (IOException e) { e.printStackTrace(); } } }); // onNetListener.onSuccess(string); } }); } }
public class OkhttpUtils1 { private static OkhttpUtils1 instance; private final OkHttpClient okHttpClient; private final Handler handler; private OkhttpUtils1() { okHttpClient = new OkHttpClient.Builder() .connectTimeout(15, TimeUnit.SECONDS)//连接超时 .writeTimeout(20, TimeUnit.SECONDS)//写入超时 .readTimeout(20, TimeUnit.SECONDS)//读取超时 .build(); handler = new Handler(Looper.getMainLooper()); } public static OkhttpUtils1 getInstance() { if (instance == null) { instance = new OkhttpUtils1(); } return instance; } /** * GET请求 * * @param url */ public void doGet(String url, final OnNetListener onNetListener) { //创建Request final Request request = new Request.Builder() .url(url) .build(); //发送请求 okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, final IOException e) { handler.post(new Runnable() { @Override public void run() { onNetListener.onFailed(e); } }); } @Override public void onResponse(Call call, Response response) throws IOException { //拿到服务器返回的数据 final String string = response.body().string(); handler.post(new Runnable() { @Override public void run() { onNetListener.onSuccess(string); } }); } }); } }
//左边bean
public class SoduBean { /** * msg : * code : 0 * data : [{"cid":1,"createtime":"2017-10-10T19:41:39","icon":"http://120.27.23.105/images/category/shop.png","ishome":1,"name":"京东超市"},{"cid":2,"createtime":"2017-10-10T19:41:39","icon":"http://120.27.23.105/images/category/qqg.png","ishome":1,"name":"全球购"},{"cid":3,"createtime":"2017-10-10T19:45:11","icon":"http://120.27.23.105/images/category/phone.png","ishome":1,"name":"手机数码"},{"cid":5,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/man.png","ishome":1,"name":"男装"},{"cid":6,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/girl.png","ishome":1,"name":"女装"},{"cid":7,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/manshoe.png","ishome":1,"name":"男鞋"},{"cid":8,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/girlshoe.png","ishome":1,"name":"女鞋"},{"cid":9,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/shirt.png","ishome":1,"name":"内衣配饰"},{"cid":10,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/bag.png","ishome":1,"name":"箱包手袋"},{"cid":11,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/beauty.png","ishome":1,"name":"美妆个护"},{"cid":12,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/jewel.png","ishome":1,"name":"钟表珠宝"},{"cid":13,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/luxury.png","ishome":1,"name":"奢侈品"},{"cid":14,"createtime":"2017-10-10T20:12:03","icon":"http://120.27.23.105/images/category/computer.png","ishome":1,"name":"电脑办公"},{"cid":15,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"家用电器"},{"cid":16,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"食品生鲜"},{"cid":17,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"酒水饮料"},{"cid":18,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"母婴童装"},{"cid":19,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"玩具乐器"},{"cid":20,"createtime":"2017-09-29T10:13:48","icon":"http://120.27.23.105/images/icon.png","ishome":0,"name":"医药保健"}] */ private String msg; private String code; private List<DataBean> data; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public List<DataBean> getData() { return data; } public void setData(List<DataBean> data) { this.data = data; } public static class DataBean { /** * cid : 1 * createtime : 2017-10-10T19:41:39 * icon : http://120.27.23.105/images/category/shop.png * ishome : 1 * name : 京东超市 */ private int cid; private String createtime; private String icon; private int ishome; private String name; public int getCid() { return cid; } public void setCid(int cid) { this.cid = cid; } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } public int getIshome() { return ishome; } public void setIshome(int ishome) { this.ishome = ishome; } public String getName() { return name; } public void setName(String name) { this.name = name; } } }
//右边bean
public class ProductCatagoryBean { /** * msg : 获取子分类成功 * code : 0 * data : [{"cid":"2","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"手机","pcid":6,"pscid":39},{"icon":"http://120.27.23.105/images/icon.png","name":"笔记本","pcid":6,"pscid":40},{"icon":"http://120.27.23.105/images/icon.png","name":"平板电脑","pcid":6,"pscid":41},{"icon":"http://120.27.23.105/images/icon.png","name":"游戏机","pcid":6,"pscid":42},{"icon":"http://120.27.23.105/images/icon.png","name":"摄影摄像","pcid":6,"pscid":43}],"name":"数码家电","pcid":"6"},{"cid":"2","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"男表","pcid":7,"pscid":44},{"icon":"http://120.27.23.105/images/icon.png","name":"女表","pcid":7,"pscid":45},{"icon":"http://120.27.23.105/images/icon.png","name":"儿童手表","pcid":7,"pscid":46},{"icon":"http://120.27.23.105/images/icon.png","name":"运动手表","pcid":7,"pscid":47},{"icon":"http://120.27.23.105/images/icon.png","name":"电子表","pcid":7,"pscid":48},{"icon":"http://120.27.23.105/images/icon.png","name":"情侣表","pcid":7,"pscid":49},{"icon":"http://120.27.23.105/images/icon.png","name":"石英表","pcid":7,"pscid":50},{"icon":"http://120.27.23.105/images/icon.png","name":"机械表","pcid":7,"pscid":51}],"name":"钟表","pcid":"7"},{"cid":"2","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"奢品箱包","pcid":8,"pscid":52},{"icon":"http://120.27.23.105/images/icon.png","name":"珠宝饰品","pcid":8,"pscid":53},{"icon":"http://120.27.23.105/images/icon.png","name":"运动户外","pcid":8,"pscid":54}],"name":"服饰奢品","pcid":"8"},{"cid":"2","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"面部护肤","pcid":9,"pscid":55},{"icon":"http://120.27.23.105/images/icon.png","name":"洗发护发","pcid":9,"pscid":56},{"icon":"http://120.27.23.105/images/icon.png","name":"身体护理","pcid":9,"pscid":57},{"icon":"http://120.27.23.105/images/icon.png","name":"口腔护理","pcid":9,"pscid":58},{"icon":"http://120.27.23.105/images/icon.png","name":"女性护理","pcid":9,"pscid":59},{"icon":"http://120.27.23.105/images/icon.png","name":"清洁用品","pcid":9,"pscid":60}],"name":"美妆个护","pcid":"9"}] */ private String msg; private String code; private List<DataBean> data; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public List<DataBean> getData() { return data; } public void setData(List<DataBean> data) { this.data = data; } public static class DataBean { /** * cid : 2 * list : [{"icon":"http://120.27.23.105/images/icon.png","name":"手机","pcid":6,"pscid":39},{"icon":"http://120.27.23.105/images/icon.png","name":"笔记本","pcid":6,"pscid":40},{"icon":"http://120.27.23.105/images/icon.png","name":"平板电脑","pcid":6,"pscid":41},{"icon":"http://120.27.23.105/images/icon.png","name":"游戏机","pcid":6,"pscid":42},{"icon":"http://120.27.23.105/images/icon.png","name":"摄影摄像","pcid":6,"pscid":43}] * name : 数码家电 * pcid : 6 */ private String cid; private String name; private String pcid; private List<ListBean> list; public String getCid() { return cid; } public void setCid(String cid) { this.cid = cid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPcid() { return pcid; } public void setPcid(String pcid) { this.pcid = pcid; } public List<ListBean> getList() { return list; } public void setList(List<ListBean> list) { this.list = list; } public static class ListBean { /** * icon : http://120.27.23.105/images/icon.png * name : 手机 * pcid : 6 * pscid : 39 */ private String icon; private String name; private int pcid; private int pscid; public String getIcon() { return icon; } public void setIcon(String icon) { this.icon = icon; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPcid() { return pcid; } public void setPcid(int pcid) { this.pcid = pcid; } public int getPscid() { return pscid; } public void setPscid(int pscid) { this.pscid = pscid; } } }}
//返回的请求
public interface OnNetListener { void onSuccess(String result); void onFailed(Exception e); }
//依赖自己找
//权限自己加
{
友情添加
public class ApiUtil { private static final String BASE_URL = "https://www.zhaoapi.cn/"; //首页 public static final String HOME_URL = BASE_URL+"ad/getAd"; //分类 public static final String FEN_LEI_URL = BASE_URL+"product/getCatagory"; //详情 public static final String DETAIL_URL = BASE_URL+"product/getProductDetail"; //子分类 public static final String CHILD_FEN_LEI_URL = BASE_URL+"product/getProductCatagory"; //搜索 public static final String SEARTCH_URL = BASE_URL+"product/searchProducts"; //登录 public static final String LOGIN_URL = BASE_URL+"user/login"; //查询购物车 public static final String SELECT_CART = BASE_URL+"product/getCarts"; //更新购物车 product/updateCarts?uid=71&sellerid=1&pid=1&selected=0&num=10 public static final String UPDATE_CART_URL = BASE_URL+"product/updateCarts"; //删除购物车...product/deleteCart?uid=72&pid=1 public static final String DELETE_CART_URL = BASE_URL+"product/deleteCart"; //添加购物车...uid...pid public static final String ADD_CART_URL = BASE_URL+"product/addCart"; //注册 public static final String REGIST_URL = BASE_URL+"user/reg"; //https://www.zhaoapi.cn/file/upload上传的服务器路径 public static final String UPLOAD_ICON_URL = BASE_URL+"file/upload"; //获取用户信息...https://www.zhaoapi.cn/user/getUserInfo public static final String USER_INFO_URL = BASE_URL+"user/getUserInfo"; //创建订单...https://www.zhaoapi.cn/product/createOrder public static final String CREATE_ORDER_URL = BASE_URL+"product/createOrder"; //订单信息....https://www.zhaoapi.cn/product/getOrders?uid=71 public static final String ORDER_LIST_URL = BASE_URL+"product/getOrders"; //修改订单状态...https://www.zhaoapi.cn/product/updateOrder?uid=71&status=1&orderId=1 public static final String UPDATE_ORDER_URL = BASE_URL+"product/updateOrder"; //查询默认地址...https://www.zhaoapi.cn/user/getDefaultAddr?uid=71 public static final String GET_DEFAULT_ADDR_URL = BASE_URL+"user/getDefaultAddr"; //添加新地址...https://www.zhaoapi.cn/user/addAddr?uid=71&addr=北京市昌平区金域国际1-1-1&mobile=18612991023&name=kson public static final String ADD_NEW_ADDR_URL = BASE_URL+"user/addAddr"; //获取地址列表...https://www.zhaoapi.cn/user/getAddrs?uid=71 public static final String GET_ALL_ADDR_URL = BASE_URL+"user/getAddrs"; //设置默认地址...https://www.zhaoapi.cn/user/setAddr?uid=71&addrid=3&status=1 public static final String SET_DEFAULT_ADDR_URL = BASE_URL+"user/setAddr"; }
}