仿京东首页小分类

依赖

implementation 'com.squareup.okhttp3:okhttp:3.11.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.5.0'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.android.support:recyclerview-v7:28.0.0-rc01'
implementation 'com.facebook.fresco:fresco:1.2.0'

xml主布局文件

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="208dp"
    ></android.support.v7.widget.RecyclerView>

分类布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/sdv"
        android:layout_width="64dp"
        android:layout_height="45dp"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="15dp"
        android:src="@drawable/ic_launcher_background"
        />

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_below="@id/sdv"
        android:layout_marginLeft="20dp"
        android:text="TextView"
        android:maxEms="4"
        />
</RelativeLayout>

model层

1.bean类

public class ClassifyBean {

    private String code;
    private DataBean data;
    private String message;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public DataBean getData() {
        return data;
    }

    public void setData(DataBean data) {
        this.data = data;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public static class DataBean {
        private List<DisplayBean> display;

        public List<DisplayBean> getDisplay() {
            return display;
        }

        public void setDisplay(List<DisplayBean> display) {
            this.display = display;
        }

        public static class DisplayBean {
            /**
             * uid : 100180
             * ordered : 0
             * space : 售楼处/家居别墅/样板间
             * bill : 0
             * evaluate : 0
             * nick_name : 刘卫军
             * avatar : https://app.tuozhe8.com/uploads/avatar/091286e480d0ace52f3e965c462f0061100180.jpeg
             * address : 广东
             * charge : 价格面议
             * intro : 主张以情感美学创造艺术空间,其美学取向分为人本取向与文本取向两种
             */

            private String uid;
            private String ordered;
            private String space;
            private String bill;
            private String evaluate;
            private String nick_name;
            private String avatar;
            private String address;
            private String charge;
            private String intro;

            public String getUid() {
                return uid;
            }

            public void setUid(String uid) {
                this.uid = uid;
            }

            public String getOrdered() {
                return ordered;
            }

            public void setOrdered(String ordered) {
                this.ordered = ordered;
            }

            public String getSpace() {
                return space;
            }

            public void setSpace(String space) {
                this.space = space;
            }

            public String getBill() {
                return bill;
            }

            public void setBill(String bill) {
                this.bill = bill;
            }

            public String getEvaluate() {
                return evaluate;
            }

            public void setEvaluate(String evaluate) {
                this.evaluate = evaluate;
            }

            public String getNick_name() {
                return nick_name;
            }

            public void setNick_name(String nick_name) {
                this.nick_name = nick_name;
            }

            public String getAvatar() {
                return avatar;
            }

            public void setAvatar(String avatar) {
                this.avatar = avatar;
            }

            public String getAddress() {
                return address;
            }

            public void setAddress(String address) {
                this.address = address;
            }

            public String getCharge() {
                return charge;
            }

            public void setCharge(String charge) {
                this.charge = charge;
            }

            public String getIntro() {
                return intro;
            }

            public void setIntro(String intro) {
                this.intro = intro;
            }
        }
    }
}

2.ITask

public interface ITask {
    public void getClassifyBean(String url, OkCallback callback);
}

3.Task

public class Task implements ITask {
    @Override
    public void getClassifyBean(String url, OkCallback callback) {
        OK.getOk().doGet(url,callback);
    }
}

Presenter层

1.

public interface BasePresenter {
    void onDestroy();
}

2.

public interface IPresenter extends BasePresenter{
    public void getClassifyData();
}

3.

public class MyPresenter implements IPresenter {
    ITask task;
    IView view;
    public MyPresenter(MainActivity activity){
        task=new Task();
        view=activity;
    }
    @Override
    public void getClassifyData() {
        task.getClassifyBean("https://app.tuozhe8.com/api.php/api/Lists/designer?token=&version=1.7", new OkCallback() {
            @Override
            public void onUI(String json) {
                Gson gson=new Gson();
                ClassifyBean classifyBean = gson.fromJson(json, ClassifyBean.class);
                List<ClassifyBean.DataBean.DisplayBean> display = classifyBean.getData().getDisplay();
                view.getClassifyShow(display);
            }

            @Override
            public void onFailed(String json) {

            }
        });
    }

    @Override
    public void onDestroy() {
        view=null;
    }
}

View层

1.

public interface IView {
    public void getClassifyShow(List<ClassifyBean.DataBean.DisplayBean>classifys);
}

2.适配器

public class ClassifyAdapter extends RecyclerView.Adapter<ClassifyAdapter.MyViewHolder> {
    private Context context;
    private List<ClassifyBean.DataBean.DisplayBean>list;

    public ClassifyAdapter(Context context) {
        this.context = context;
        this.list=new ArrayList<>();
    }

    public void addData( List<ClassifyBean.DataBean.DisplayBean>Classifys){
        this.list.addAll(Classifys);
        notifyDataSetChanged();
    }
    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view= LayoutInflater.from(context).inflate(R.layout.item_classify,viewGroup,false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int i) {
        Uri uri=Uri.parse(list.get(i).getAvatar());
        holder.sdv.setImageURI(uri);
        holder.name.setText(list.get(i).getNick_name());

    }

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

    public class MyViewHolder extends RecyclerView.ViewHolder {
         SimpleDraweeView sdv;
         TextView name;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            sdv=itemView.findViewById(R.id.sdv);
            name=itemView.findViewById(R.id.name);
        }
    }
}

activity

public class MainActivity extends AppCompatActivity implements IView{
    private Banner banner;
    IPresenter presenter;
    private RecyclerView recyclerView;
    private ClassifyAdapter classifyAdapter;
    IProductPresenter productPresenter;
    private RecyclerView recyclerView2;
    private ProductAdapter productAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        presenter=new MyPresenter(this);
        presenter.getClassifyData();

     
        getClassify();
   
    }

   

    public void getClassify() {

        recyclerView=findViewById(R.id.recyclerview);
        recyclerView.setLayoutManager(new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.HORIZONTAL));

        recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() {
            @Override
            public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state){
                outRect.left = 12 ;
                outRect.top = 12;
                outRect.top = 12;
            }
        });

        classifyAdapter=new ClassifyAdapter(this);
        recyclerView.setAdapter(classifyAdapter);




    }
   
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值