分类实现
来源:互联网 发布:手机锁帧软件 编辑:程序博客网 时间:2024/06/05 21:12
compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.youth.banner:banner:+' compile 'com.android.support:recyclerview-v7:26.0.0-alpha1' compile 'com.facebook.fresco:fresco:0.11.0' compile 'io.reactivex:rxjava:1.0.14' compile 'io.reactivex:rxandroid:1.0.1' compile 'com.squareup.retrofit2:converter-gson:2.0.1' compile 'com.squareup.retrofit2:adapter-rxjava:2.0.1' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' compile 'com.squareup.okhttp3:okhttp:3.1.2' compile 'com.squareup.retrofit2:retrofit:2.0.1'
IFenView
public interface IFenView { void onZuo(Zean zean);//左侧请求成功 void onYou(Yean yean);//右侧请求成功}
FenModel
public class FenModel { ScuMod scuMod; public void setScuMod(ScuMod scuMod) { this.scuMod = scuMod; } //左面请求 public void ZuoChen(){ //OkHttp里面可以添加拦截器 OkHttpClient ok = new OkHttpClient.Builder() .build(); //请求数据 RetrofitUnitl.getInstance("https://www.zhaoapi.cn/",ok) .setCreate(Inters.class) .Zuo() .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe(new Subscriber<Zean>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Zean bean) { scuMod.Zc(bean); } }); } //右面请求 public void YuoChen(int cont){ //OkHttp里面可以添加拦截器 OkHttpClient ok = new OkHttpClient.Builder() .build(); //请求数据 RetrofitUnitl.getInstance("https://www.zhaoapi.cn/",ok) .setCreate(Inters.class) .You(cont) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()) .subscribe(new Subscriber<Yean>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Yean bean) { scuMod.Yc(bean); } }); } //定义一个接口 public interface ScuMod{ void Zc(Zean bean); void Yc(Yean yean); }}
FenPresenter
public class FenPresenter implements FenModel.ScuMod { IFenView view; FenModel model; public FenPresenter(IFenView view) { this.view = view; model = new FenModel(); model.setScuMod(this); } @Override public void Zc(Zean bean) { view.onZuo(bean); } @Override public void Yc(Yean yean) { view.onYou(yean); } //左侧调用 public void ShowPer(){ model.ZuoChen(); } // 右侧调用 public void FlShowYou(int cont){ model.YuoChen(cont); }}
Inters
public interface Inters { @GET("product/getCatagory") Observable<Zean> Zuo(); /** * 右面接口 */ @GET("product/getProductCatagory") Observable<Yean> You(@Query("cid") int cid);}
ErAdapter 二级列表的适配器
public class ErAdapter extends BaseExpandableListAdapter { private Context context; private Yean yean; public ErAdapter(Context context, Yean yean) { this.context = context; this.yean = yean; } @Override public int getGroupCount() { return yean.getData().size(); } @Override public int getChildrenCount(int i) { return 1; } @Override public Object getGroup(int i) { return yean.getData().get(i); } @Override public Object getChild(int i, int i1) { return yean.getData().get(i).getList().get(i); } @Override public long getGroupId(int i) { return i; } @Override public long getChildId(int i, int i1) { return i1; } @Override public boolean hasStableIds() { return false; } @Override public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) { //父级 View v = View.inflate(context, R.layout.you_litem, null); TextView expand_tv = v.findViewById(R.id.you_you); expand_tv.setText(yean.getData().get(i).getName()); return v; } @Override public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) { //嵌套RecyclerView的布局 View v = View.inflate(context,R.layout.youhai_litem,null); RecyclerView expand_recycler = v.findViewById(R.id.rvClass); //RecyclerView网格格式 GridLayoutManager gridlayout = new GridLayoutManager(context,3); expand_recycler.setLayoutManager(gridlayout); //RecyclerView的适配器 setchild_Aapterer chapter = new setchild_Aapterer(context,yean,i,i1); expand_recycler.setAdapter(chapter); return v; } @Override public boolean isChildSelectable(int i, int i1) { return false; }}
setchild_Aapterer 右侧RecyclerView
public class setchild_Aapterer extends RecyclerView.Adapter<setchild_Aapterer.ViewHodler>{ private Context context; private Yean yean; private int i,i1; private OnItemClickListener mOnItemClickListener; public setchild_Aapterer(Context context,Yean list,int i,int i1) { this.context = context; this.yean = list; this.i = i; this.i1 = i1; } //点击事件 public interface OnItemClickListener{ void onItemClick(View view, int position); } public void setOnItemClickListener(OnItemClickListener mOnItemClickListener){ this.mOnItemClickListener = mOnItemClickListener; } @Override public setchild_Aapterer.ViewHodler onCreateViewHolder(ViewGroup parent, int viewType) { View v = View.inflate(context, R.layout.child_item,null); ViewHodler hodler = new ViewHodler(v); hodler.img_child = v.findViewById(R.id.img_child); hodler.tv_child = v.findViewById(R.id.tv_child); return hodler; } @Override public void onBindViewHolder(final setchild_Aapterer.ViewHodler holder, int position) { String[] str =yean.getData().get(i).getList().get(position).getIcon().split("\\|"); String s = str[0]; Glide.with(context).load(s).into(holder.img_child); holder.tv_child.setText(yean.getData().get(i).getList().get(position).getName()); if (mOnItemClickListener != null){ holder.img_child.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int position =holder.getLayoutPosition(); mOnItemClickListener.onItemClick(holder.itemView,position); // } }); } } @Override public int getItemCount() { return yean.getData().get(i).getList().size(); } public class ViewHodler extends RecyclerView.ViewHolder { private ImageView img_child; private TextView tv_child; public ViewHodler(View itemView) { super(itemView); } }}
ZuoAdapter 左侧RecyclerView适配器
public class ZuoAdapter extends RecyclerView.Adapter<ZuoAdapter.MyHolder> { private Context context; private Zean zean; private OnItemClickListener mOnItemClickListener; public ZuoAdapter(Context context, Zean list) { this.context = context; this.zean = list; } public interface OnItemClickListener{ void onItemClick(View view, int position); } public void setOnItemClickListener(OnItemClickListener mOnItemClickListener){ this.mOnItemClickListener = mOnItemClickListener; } @Override public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyHolder holder = new MyHolder(LayoutInflater.from(context).inflate(R.layout.zuo_litem, parent, false)); return holder; } @Override public void onBindViewHolder(final MyHolder holder, int position) { holder.zuo_mz.setText(zean.getData().get(position).getName()); if (mOnItemClickListener != null){ holder.zuo_mz.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int position = holder.getLayoutPosition(); // 1 mOnItemClickListener.onItemClick(holder.itemView,position); // 2 } }); } } @Override public int getItemCount() { return zean.getData().size(); } class MyHolder extends RecyclerView.ViewHolder { TextView zuo_mz; public MyHolder(View itemView) { super(itemView); zuo_mz = itemView.findViewById(R.id.zuo_mz); } }}
TwoFragment
public class TwoFragment extends Fragment implements IFenView { private View view; private RecyclerView rec; public FenPresenter presenter; public RecyclerView zrv; public ExpandableListView yev; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fenlie, null); presenter = new FenPresenter(this); presenter.ShowPer(); //默认展示第一条 presenter.FlShowYou(1); //找控件 zrv = view.findViewById(R.id.zrv); yev = view.findViewById(R.id.yev); return view; } @Override public void onZuo(final Zean zean) { zrv.setLayoutManager(new LinearLayoutManager(getActivity())); //拿到适配器 ZuoAdapter adapter = new ZuoAdapter(getActivity(), zean); zrv.setAdapter(adapter); //调用点击事件 adapter.setOnItemClickListener(new ZuoAdapter.OnItemClickListener() { @Override public void onItemClick(View view, int position) { int id = zean.getData().get(position).getCid(); presenter.FlShowYou(id); } }); } @Override public void onYou(Yean yean) { ErAdapter adapter = new ErAdapter(getActivity(), yean); yev.setAdapter(adapter); //父级列表默认全部展开 int groupCount = yev.getCount(); for (int i = 0; i < groupCount; i++) { yev.expandGroup(i); } }}
fenlei.XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <android.support.v7.widget.RecyclerView android:id="@+id/zrv" android:layout_width="130dp" android:layout_height="match_parent" /> <ExpandableListView android:id="@+id/yev" android:layout_width="match_parent" android:layout_height="match_parent"></ExpandableListView></LinearLayout>
child_itme.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="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/img_child" android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="center" /> <TextView android:id="@+id/tv_child" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="名字" android:layout_gravity="center" /></LinearLayout>
you_litem
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"><TextView android:layout_width="100dp" android:layout_height="50dp" android:id="@+id/you_you" /></LinearLayout>
youhai_litem
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="300dp"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="300dp" android:id="@+id/rvClass" ></android.support.v7.widget.RecyclerView></LinearLayout>
zuo_litem
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="50dp"> <TextView android:id="@+id/zuo_mz" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="名字" android:layout_gravity="center" /></LinearLayout>
阅读全文
0 0
- 分类实现
- 实现无限分类
- PHP实现无限分类
- AdaBoost分类算法实现
- R实现分类树
- Adaboost实现二分类
- java实现 分类汇总
- 递归实现无线分类
- JAVA实现KNN分类
- 高仿京东分类页面实现
- 贝叶斯分类c++实现
- mysql 实现分类统计
- 利用分类实现功能
- Python分类决策树实现
- python实现文本分类
- SVM实现邮件分类
- 使用决策树实现分类
- caffe分类实现
- 给prometheus加一个export
- 分割大头文件并压缩打包shell脚本
- codeforces 148A Insomnia cure
- 调用相册相机
- 104,101规约中的短浮点数
- 分类实现
- leetCode-Search in Rotated Sorted Array
- dict方法总结
- 给sublime3配置C++(编译,运行,和格式化代码)
- 反转链表
- List<Object> 排序
- DaVinci Resolve 14 Studio(视频剪辑工具套装)官方中文破解版V14.2.0下载 | DaVinci Resolve百度云
- RefineNet学习笔记
- CSS page-break-after 属性