仿京东分类

<?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="vertical">

    <include layout="@layout/page_layout" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <com.jcodecraeer.xrecyclerview.XRecyclerView
            android:id="@+id/fen_zuo_Rev"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2.5" />

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="7.5"
            android:orientation="vertical">
            <com.youth.banner.Banner
                android:layout_width="match_parent"
                android:id="@+id/fen_Banner"
                android:layout_marginRight="20dp"
                android:layout_height="100dp"
                android:layout_marginLeft="10dp"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="10dp" />

            <com.jcodecraeer.xrecyclerview.XRecyclerView
                android:id="@+id/Rev_you_cyerView"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </LinearLayout>


    </LinearLayout>

</LinearLayout>

 

public interface FenView {
    void success(FenBean fenBean);

    void failure(String msg);

 

public interface ChildView {
    void success(ChildBean childBean);
    void failure(String msg);
}

 

public interface IView {
    void onsuccess(ShowBean showBean);
    void onfailure(String msg);
}

 

package com.example.jingd.persenter;

import android.util.Log;

import com.example.jingd.bean.FenBean;
import com.example.jingd.utils.HttpUtils;
import com.example.jingd.view.FenView;

import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;

public class FenPresenter {

    FenView fenView;

    public FenPresenter(FenView fenView) {
        this.fenView = fenView;
    }

    public void getFenData() {
        Observable<FenBean> fenlei = HttpUtils.getHttpUtilsInstance().api.fenlei();
        fenlei.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<FenBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(FenBean fenBean) {
                        fenView.success(fenBean);
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e("sxxxxxx","错误");
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
}

 

public class ChildPresenter {

   ChildView childView;

    public ChildPresenter(ChildView childView) {
        this.childView = childView;
    }

    public void getChildData(int cid) {
        Observable<ChildBean> child = HttpUtils.getHttpUtilsInstance().api.getChild(cid);
        child.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<ChildBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(ChildBean childBean) {
                        childView.success(childBean);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
}

 

public class IPersenter {
    IView iView;

    public IPersenter(IView iView) {
        this.iView = iView;
    }

    public void getData() {
        Observable<ShowBean> showye = HttpUtils.getHttpUtilsInstance().api.showye();
        showye.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<ShowBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(ShowBean showBean) {
                        iView.onsuccess(showBean);
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e("ssss","错误");
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
}

 


 
<?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:padding="10dp">

    <TextView
        android:id="@+id/zuo_name"
        android:padding="5dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="10dp" />
</LinearLayout>


public class FenRevAdapter extends RecyclerView.Adapter<FenRevAdapter.ViewHolder> {

    Context context;
    List<FenBean.DataBean> beanList;
    OnItemClickListener onItemClickListener;

    public FenRevAdapter(Context context) {
        this.context = context;
    }

    public void setBeanList(List<FenBean.DataBean> beanList) {
        this.beanList = beanList;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View inflate = LayoutInflater.from(context).inflate(R.layout.fen_zuo_layout, parent, false);
        return new ViewHolder(inflate);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {
        holder.name.setText(beanList.get(position).getName());
        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (onItemClickListener!= null){
                    onItemClickListener.onItemClick(position);
                }
            }
        });

    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {
        TextView name;

        public ViewHolder(View itemView) {
            super(itemView);
            name = itemView.findViewById(R.id.zuo_name);
        }
    }
    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
        this.onItemClickListener = onItemClickListener;
    }

    public interface OnItemClickListener{
        void onItemClick(int posistion);
    }
}

 


 
<?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:layout_marginTop="10dp"
        android:id="@+id/you_title"
        android:text="@string/app_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />


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



</LinearLayout>

public class MyChildAdapter extends RecyclerView.Adapter<MyChildAdapter.ViewHolder> {

    Context context;
    List<ChildBean.DataBean> listBeans;
    List<String> list;

    public MyChildAdapter(Context context, List<ChildBean.DataBean> listBeans) {
        this.context = context;
        this.listBeans = listBeans;

    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View inflate = LayoutInflater.from(context).inflate(R.layout.fen_you_layout, parent, false);
        return new ViewHolder(inflate);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.title.setText(listBeans.get(position).getName());
        MyYouItemAdapter adapter = new MyYouItemAdapter(context,listBeans.get(position).getList());
        holder.youRev_item.setAdapter(adapter);
        adapter.setOnItemClickListener(new MyYouItemAdapter.OnItemClickListener() {
            @Override
            public void onItemClickListener(int position) {

            }
        });
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {

        TextView title;
        RecyclerView youRev_item;

        public ViewHolder(View itemView) {
            super(itemView);
            title = itemView.findViewById(R.id.you_title);
            youRev_item = itemView.findViewById(R.id.youyou_item_Rev);
            youRev_item.setLayoutManager(new GridLayoutManager(context,3));
        }
    }
}

 

public class FenleiFragment extends Fragment implements FenView, ChildView, IView {

    @BindView(R.id.fen_zuo_Rev)
    XRecyclerView fenFenleiRev;
    Unbinder unbinder;
    @BindView(R.id.Rev_you_cyerView)
    XRecyclerView fenYouRev;
    @BindView(R.id.sm_btn)
    Button smBtn;
    @BindView(R.id.sel_et)
    EditText selEt;
    @BindView(R.id.fen_Banner)
    Banner fenBanner;
    @BindView(R.id.btn_ss)
    ImageView btnSs;
    private int cid;
    private ChildPresenter childPersenter;
    private List<ChildBean.DataBean> data;
    private List<String> list;
    private IPersenter iPersenter;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fenleifragment_layout, container, false);
        unbinder = ButterKnife.bind(this, inflate);
        FenPresenter fenPersenter = new FenPresenter(this);
        fenPersenter.getFenData();
        childPersenter = new ChildPresenter(this);
        childPersenter.getChildData(1);
        iPersenter = new IPersenter(this);
        iPersenter.getData();
        initView();
        initData();
        return inflate;
    }

    private void initData() {

    }


    private void initView() {
        fenYouRev.setLayoutManager(new LinearLayoutManager(getActivity()));
        fenFenleiRev.setLayoutManager(new LinearLayoutManager(getActivity()));
    }

    @Override
    public void success(final FenBean fenBean) {

        FenRevAdapter adapter = new FenRevAdapter(getActivity());
        adapter.setBeanList(fenBean.getData());
        fenFenleiRev.setAdapter(adapter);
        adapter.setOnItemClickListener(new FenRevAdapter.OnItemClickListener() {

            @Override
            public void onItemClick(int posistion) {
                cid = fenBean.getData().get(posistion).getCid();
                childPersenter.getChildData(cid);
                Log.e("cid+++++++++++++++:::", cid + "");
            }
        });
    }

    @Override
    public void success(ChildBean childBean) {
        data = childBean.getData();
        MyChildAdapter myChildAdapter = new MyChildAdapter(getActivity(), data);
        fenYouRev.setAdapter(myChildAdapter);


    }

    @Override
    public void failure(String msg) {

    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
    }

    @Override
    public void onsuccess(ShowBean showBean) {

        List<ShowBean.DataBean.BannerBean> ban = showBean.getData().getBanner();
        list = new ArrayList<>();
        for (int i = 0; i < ban.size(); i++) {
            list.add(ban.get(i).getIcon().replace("https","http"));
        }
        fenBanner.setImages(list)
                .setImageLoader(new MyLoader())
                .isAutoPlay(true)
                .start();
    }

    @Override
    public void onfailure(String msg) {
        Log.e("qqqqqqqqqqqqqqq", msg + "");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值