<?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 + "");
}
}