1.1主页面布局

<?  version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout  ns:android=\"http://schemas.android.com/apk/res/android\"
     ns:tools=\"http://schemas.android.com/tools\"
    android:layout_width=\"match_parent\"
    android:layout_height=\"match_parent\"
    tools:context=\".MainActivity\"
    android:orientation=\"vertical\">
    
    <TextView
        android:layout_width=\"match_parent\"
        android:layout_height=\"60dp\"
        android:gravity=\"center\"
        android:textSize=\"20sp\"
        android:textColor=\"#ff0000\"
        android:text=\"购物车\"/>
<LinearLayout
    android:layout_width=\"match_parent\"
    android:layout_height=\"match_parent\"
    android:orientation=\"horizontal\">
    <!-- 左边边的列表-->
    <android.support.v7.widget.RecyclerView
        android:id=\"@+id/recyclerView_zuo\"
        android:layout_width=\"100dp\"
        android:layout_height=\"match_parent\"
        android:background=\"#eeeeee\"/>

    <!--间隔线-->

    <View
        android:id=\"@+id/view_line\"
        android:layout_width=\"1dp\"
        android:layout_height=\"match_parent\"
        android:background=\"#333333\" />

    <!-- 右边的列表-->
    <android.support.v7.widget.RecyclerView
        android:id=\"@+id/recyclerView_you\"
        android:layout_width=\"match_parent\"
        android:layout_height=\"match_parent\"
        />
</LinearLayout>
</LinearLayout>

1.2左边布局

<?  version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout  ns:android=\"http://schemas.android.com/apk/res/android\"
    android:id=\"@+id/ll_shop_type\"
    android:layout_width=\"100dp\"
    android:layout_height=\"match_parent\"
    android:gravity=\"center\"
    android:padding=\"10dp\">
    <!--展示左边的-->
    <TextView
    android:id=\"@+id/type_name\"
    android:layout_width=\"match_parent\"
    android:layout_height=\"match_parent\" />


</LinearLayout>

左边的Adapter

package com.bw.ymy.text1.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.LinearLayout;
import android.widget.TextView;

import com.bw.ymy.text1.R;
import com.bw.ymy.text1.bean.ZuoBean;

import java.util.ArrayList;
import java.util.List;
//左边的Adapter
public class ZuoAdapter extends RecyclerView.Adapter<ZuoAdapter.ViewHolder> {

    private Context mcontext;
    private List<ZuoBean.DataBean> mlist=new ArrayList<>();

    public ZuoAdapter(Context context) {
        this.mcontext = context;
    }
    public  void  setData(List<ZuoBean.DataBean> list)
    {
        this.mlist=list;
        notifyDataSetChanged();
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        //获取布局
        View view=LayoutInflater.from(mcontext).inflate(R.layout.zuoAdapter,null);
        ViewHolder viewHolder1=new ViewHolder(view);
        return viewHolder1;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) {

        //显示名字
       viewHolder.name.setText(mlist.get(i).getName());
       //点击进去显示更多
        viewHolder.linearLayout.set Listener(new View. Listener() {
            @Override
            public void  (View v) {
                if(m Listener != null){
                    //getcid  bean类是int 需要自己改成String
                    m Listener. (i, mlist.get(i).getCid());

            }
            }
        });

    }
    @Override
    public int getItemCount() {
        return mlist.size();
    }

    public  class  ViewHolder extends RecyclerView.ViewHolder{
      private   LinearLayout linearLayout;
        private  TextView name;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            name=itemView.findViewById(R.id.type_name);
            linearLayout=itemView.findViewById(R.id.ll_shop_type);
        }
    }
    //点击接口
    private  Listener m Listener;

    public void set Listener( Listener listener) {
        this.m Listener = listener;
    }

    public interface  Listener {
        void  (int position, String cid);
    }
}

 

1.3右边的

<?  version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout  ns:android=\"http://schemas.android.com/apk/res/android\"
    android:layout_width=\"match_parent\"
    android:layout_height=\"wrap_content\"
    android:gravity=\"center_vertical\"
    android:padding=\"4dp\"
    android:orientation=\"horizontal\">

    <!--右边集合里面的数据-->

    <ImageView
        android:id=\"@+id/iv_shop_type_product_linear\"
        android:layout_width=\"40dp\"
        android:layout_height=\"40dp\" />

    <TextView
        android:id=\"@+id/tv_shop_type_product_linear\"
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\"
        android:textSize=\"14sp\"
        android:layout_marginLeft=\"10dp\" />
</LinearLayout>

右边的adapter

package com.bw.ymy.text1.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.bw.ymy.text1.R;
import com.bw.ymy.text1.bean.YouBean;

import java.util.ArrayList;
import java.util.List;

//右边的adapter
public class YouAdapter extends RecyclerView.Adapter<YouAdapter.MyViewHolder> {
    private Context mcontext;
    private List<YouBean.Data.ProductData> mlist=new ArrayList<>();

    //需要注意 不要弄错
    public YouAdapter(Context context) {
        this.mcontext = context;
    }
    public  void setData(List<YouBean.Data.ProductData> list)
    {
        this.mlist=list;
        notifyDataSetChanged();
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        //获取布局
        View view=View.inflate(mcontext,R.layout.youadapter,null);
        MyViewHolder viewHolder=new MyViewHolder(view);

        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {

        Glide.with(mcontext).load(mlist.get(i).getIcon()).into(myViewHolder.icon);
        myViewHolder.iname.setText(mlist.get(i).getName());

    }

    @Override
    public int getItemCount() {
        return mlist.size();
    }

    public  class  MyViewHolder extends RecyclerView.ViewHolder{

        private ImageView icon;
        private TextView iname;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            icon=itemView.findViewById(R.id.iv_shop_type_product_linear);
            iname=itemView.findViewById(R.id.tv_shop_type_product_linear);
        }
    }
}

 

1.4右边里面嵌套一个布局

<?  version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout  ns:android=\"http://schemas.android.com/apk/res/android\"
    android:layout_width=\"match_parent\"
    android:layout_height=\"match_parent\"
    android:orientation=\"vertical\">

    <!--右边布局-->

    <TextView
        android:id=\"@+id/tv_shop_name\"
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\"
        android:padding=\"2dp\"
        android:textSize=\"16sp\"
        />

    <RelativeLayout
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\">

        <android.support.v7.widget.RecyclerView
            android:id=\"@+id/recyclerview_shop_product\"
            android:layout_width=\"match_parent\"
            android:layout_height=\"wrap_content\"></android.support.v7.widget.RecyclerView>
    </RelativeLayout>

</LinearLayout>

嵌套的adapter

package com.bw.ymy.text1.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.bw.ymy.text1.R;
import com.bw.ymy.text1.bean.YouBean;

import java.util.ArrayList;
import java.util.List;


//右边集合里面嵌套集合
public class Adapter extends RecyclerView.Adapter<Adapter.MyViewHolder>{
    private List<YouBean.Data> mlist=new ArrayList<>();
    private Context mcontext;

    public Adapter(Context context) {
        this.mcontext = context;
    }
    public void setData(List<YouBean.Data> list) {
        this.mlist = list;
        notifyDataSetChanged();
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        //获取布局
        View view=View.inflate(mcontext,R.layout.produce_adapter,null);
        MyViewHolder myViewHolder=new MyViewHolder(view);
        return myViewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
        myViewHolder.name.setText(mlist.get(i).getName());
        //右侧有Recview展示     YouAdapter 把上一个右边展示的Adapter  拿过来
        final  YouAdapter adapter=new YouAdapter(mcontext);
        LinearLayoutManager layoutManager=new LinearLayoutManager(mcontext);
        myViewHolder.mrecyclerView.setLayoutManager(layoutManager);
        myViewHolder.mrecyclerView.setAdapter(adapter);
        myViewHolder.mrecyclerView.addItemDecoration(new DividerItemDecoration(mcontext,DividerItemDecoration.VERTICAL));
       adapter.setData(mlist.get(i).getList());

    }

    @Override
    public int getItemCount() {
        return mlist.size();
    }

    public  class  MyViewHolder extends RecyclerView.ViewHolder{


        private TextView name;
        private RecyclerView mrecyclerView;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);

            name=itemView.findViewById(R.id.tv_shop_name);
            mrecyclerView=itemView.findViewById(R.id.recyclerview_shop_product);
        }
    }
}

2.1主页面

package com.bw.ymy.text1;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import com.bw.ymy.text1.adapter.Adapter;
import com.bw.ymy.text1.adapter.YouAdapter;
import com.bw.ymy.text1.adapter.ZuoAdapter;
import com.bw.ymy.text1.bean.YouBean;
import com.bw.ymy.text1.bean.ZuoBean;
import com.bw.ymy.text1.presenter.IPresenterlpl;
import com.bw.ymy.text1.view.IView;

import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity implements IView {

    private IPresenterlpl iPresenterlpl;
    private ZuoAdapter zuoAdapter;
    private Adapter adapter;
    private RecyclerView recyclerView1,recyclerView2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iPresenterlpl=new IPresenterlpl(this);
        //获取资源id
        initView();
        //展示左侧数据
        Lefttype();
        //右侧
        getData();
    }
    //右侧
    private void getData() {

        recyclerView2=findViewById(R.id.recyclerView_you);
        LinearLayoutManager layoutManager=new LinearLayoutManager(this);
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView2.setLayoutManager(layoutManager);
        recyclerView2.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
        adapter= new Adapter(this);
        recyclerView2.setAdapter(adapter);
    }
    //左侧
    private void initView() {
        recyclerView1=findViewById(R.id.recyclerView_zuo);
        LinearLayoutManager layoutManagerleft=new LinearLayoutManager(this);
        layoutManagerleft.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView1.setLayoutManager(layoutManagerleft);
        recyclerView1.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
        zuoAdapter=new ZuoAdapter(this);
        recyclerView1.setAdapter(zuoAdapter);
        //点击显示右边的数据
        zuoAdapter.set Listener(new ZuoAdapter. Listener() {
            @Override
            public void  (int position, String cid) {
                righttype(cid);
            }
        });
    }
    //左边
    private void Lefttype() {
        Map<String,String> map=new HashMap<>();
        iPresenterlpl.getRequest(Apis.URL_PRODUCT_GET_CATAGORY,map,ZuoBean.class);
    }
    //右边
    private void righttype(String cid) {
        Map<String,String> map=new HashMap<>();
        map.put(Uid.MAP_KEY_PRODUCT_GET_CATAGORY_CID,cid);
        iPresenterlpl.getRequest(Apis.URL_PRODUCT_GET_PRODUCT_CATAGORY,map,YouBean.class);
    }

    @Override
    public void onSuccess(  data) {
        //左边
        if(data instanceof ZuoBean)
        {
            ZuoBean zuoBean= (ZuoBean) data;
           zuoAdapter.setData(zuoBean.getData());
            //  //右边
        }else  if(data instanceof  YouBean)
        {
            YouBean  youBean= (YouBean) data;
            adapter.setData(youBean.getData());
        }
    }
}

3.Apis

package com.bw.ymy.text1;

public class Apis {

            //左边
    public static final String URL_PRODUCT_GET_CATAGORY = \"http://www.zhaoapi.cn/product/getCatagory\";
    //右边
    public static final String URL_PRODUCT_GET_PRODUCT_CATAGORY = \"http://www.zhaoapi.cn/product/getProductCatagory\";
}

4.Uid

package com.bw.ymy.text1;

public class Uid {
    public static final String MAP_KEY_GET_PRODUCT_UID= \"uid\";

    public static final String MAP_KEY_PRODUCT_GET_CATAGORY_CID= \"cid\";
}

5.右边的bean类

package com.bw.ymy.text1.bean;

import java.util.List;

public class YouBean {
    private String msg;
    private String code;
    private List<Data> 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<Data> getData() {
        return data;
    }

    public void setData(List<Data> data) {
        this.data = data;
    }

    public class Data{
        private String cid;
        private String name;
        private String pcid;

        private List<ProductData> 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<ProductData> getList() {
            return list;
        }

        public void setList(List<ProductData> list) {
            this.list = list;
        }

        public class ProductData{
            private String icon;
            private String name;
            private String pcid;
            private String 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 String getPcid() {
                return pcid;
            }

            public void setPcid(String pcid) {
                this.pcid = pcid;
            }

            public String getPscid() {
                return pscid;
            }

            public void setPscid(String pscid) {
                this.pscid = pscid;
            }


           
        }
    }}

6.左边的bean类

package com.bw.ymy.text1.bean;

import java.util.List;

public class ZuoBean {

    /**
     * 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 String cid;
        private String createtime;
        private String icon;
        private int ishome;
        private String name;

        public String getCid() {
            return cid;
        }

        public void setCid(String 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;
        }
    }
}

权限:

build.gradle 
//okhttp依赖
    implementation \'com.squareup.okhttp3:okhttp:3.11.0\'
    implementation \'com.squareup.okhttp3:logging-interceptor:3.11.0\'
    // glide加载图片依赖
    implementation \'com.github.bumptech.glide:glide:4.8.0\'
    //recyclerview依赖
    implementation \'com.android.support:recyclerview-v7:28.0.0\'

    //gson
    implementation \'com.google.code.gson:gson:2.8.5\'
    //Xre
    implementation \'com.jcodecraeer:xrecyclerview:1.5.9\'


 configurations.all {
        resolutionStrategy.eachDependency { DependencyResolveDetails details ->
            def requested = details.requested
            if (requested.group == \'com.android.support\') {
                if (!requested.name.startsWith(\"multidex\")) {
                    details.useVersion \'28.0.0\'//根据你的底下appcompat-v7版本
                }
            }
        }
    }

 

收藏 打印