This article shares the specific code for the RecyclerView to implement product classification function in Android for your reference. The specific content is as follows
Three RecyclerView implementations
//The layout on the left
<LinearLayout xmlns:andro android:layout_width="match_parent" android:layout_height="50dp" android:orientation="vertical"> <TextView android: android:textSize="18sp" android:text="Sold by Assad" android:gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
//The layout on the right
<RelativeLayout xmlns:andro android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:/> <. android:layout_width="match_parent" android:layout_height="match_parent" android: android:layout_below="@+id/name"/> </RelativeLayout>
//Sub-Layout
<LinearLayout xmlns:andro android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android: android:layout_width="90dp" android:layout_height="90dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android: /> </LinearLayout>
//Define an interface
public interface CallBack { void onSuccess(List<> list); void onFailer(String error); }
//The Model layer on the left
public class LeftModel { private String path="/product/getCatagory"; public void getData(final CallBack callBack){ OkHttp okHttp=new OkHttp(); (path).getDataLiserner(new () { @Override public void Data(String s) { Gson gson=new Gson(); LeftBean json = (s, ); List<> data = (); if (data!=null){ (data); }else { ("fail"); } } }); } }
//The Presenter layer on the left
public class LeftPresenter { private LeftView leftView; private final LeftModel leftModel; public LeftPresenter(LeftView leftView) { = leftView; leftModel = new LeftModel(); } public void showLeft(){ (new CallBack() { @Override public void onSuccess(List<> list) { (list); } @Override public void onFailer(String error) { (error); } }); } }
//View layer
public interface LeftView { void onSuccess(List<> list); void Failer(String error); }
//The adapter on the left
public class LeftRecycAdapter extends <>{ private Context mContext; private List<> list; public LeftRecycAdapter(Context mContext, List<> list) { = mContext; = list; } @NonNull @Override public LeftViewHoler onCreateViewHolder(@NonNull ViewGroup viewGroup, int ViewType) { View view = (mContext).inflate(.left_item, viewGroup,false); LeftViewHoler leftViewHoler=new LeftViewHoler(view); return leftViewHoler; } @Override public void onBindViewHolder(@NonNull LeftViewHoler leftViewHoler, int position) { ((position).getName()); } @Override public int getItemCount() { return (); } public class LeftViewHoler extends { private TextView textView; public LeftViewHoler(@NonNull View itemView) { super(itemView); textView=(.tv_name); (new () { @Override public void onClick(View v) { (v,getAdapterPosition()); } }); } } public interface OnClickListener{ void onclick(View view,int position); } OnClickListener onClickListener; public void setOnclickListener(OnClickListener onclickListener){ =onclickListener; } }
Start the right one
//The interface on the right
public interface CallBackRight { void onSuccess2(List<> list); void onFailer2(String error); }
//The Model layer on the right
public class RightModel { // private String path1="/product/getProductCatagory?cid=3&tdsourcetag=s_pcqq_aiomsg"; public void showright(final String cid2, final CallBackRight callBackRight){ OkHttp okHttp=new OkHttp(); (cid2).getDataLiserner(new () { @Override public void Data(String s) { Gson gson=new Gson(); RightBean json = (s, ); List<> data = (); if (data!=null){ callBackRight.onSuccess2(data); }else { callBackRight.onFailer2("mistake"); } } }); } }
//The Presenter layer on the right
public class RightPresenter { private final RightModel rightModel; private RightView rightView; public RightPresenter(RightView rightView) { = rightView; rightModel = new RightModel(); } public void showright(String id){ (id, new CallBackRight() { @Override public void onSuccess2(List<> list) { rightView.onSuccess2(list); } @Override public void onFailer2(String error) { rightView.onFailer2(error); } }); } }
//The View layer on the right
public interface RightView { void onSuccess2(List<> list); void onFailer2(String error); }
//The adapter on the right
public class RightRecycAdapter extends <> { private Context mContext; private List<> list; public RightRecycAdapter(Context mContext, List<> list) { = mContext; = list; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int ViewType) { View view = (mContext).inflate(.right_item, viewGroup, false); ViewHolder viewHolder=new ViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) { ((position).getName()); List<> list = (position).getList(); GridLayoutManager gridLayoutManager=new GridLayoutManager(mContext,3); (gridLayoutManager); ChildAdapter childAdapter=new ChildAdapter(mContext,list); (childAdapter); } @Override public int getItemCount() { return (); } public class ViewHolder extends { private TextView textView; private RecyclerView recyclerView; public ViewHolder(@NonNull View itemView) { super(itemView); textView=(); recyclerView=(.right_recy); } } }
//Subclass adapter
public class ChildAdapter extends <> { private Context context; private List<> list; public ChildAdapter(Context context, List<> list) { = context; = list; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int ViewType) { View view = (context).inflate(, viewGroup, false); ViewHolder viewHolder=new ViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) { ((position).getName()); (context).load((position).getIcon()).into(); } @Override public int getItemCount() { return (); } public class ViewHolder extends { private ImageView imageView; private TextView textView; public ViewHolder(@NonNull View itemView) { super(itemView); imageView=(.image2); textView=(.title1); } } }
//Get started
public class Fragment1 extends Fragment implements LeftView,RightView { private View view; private RecyclerView left; private RecyclerView right; private RightPresenter rightPresenter; Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { (msg); final List<> list = (List<>) ; LinearLayoutManager linearLayoutManager=new LinearLayoutManager(getActivity(),,false); (linearLayoutManager); LeftRecycAdapter leftRecycAdapter=new LeftRecycAdapter(getActivity(),list); (leftRecycAdapter); (new () { @Override public void onclick(View view, int position) { int cid = (position).getCid(); ("/product/getProductCatagory?cid="+cid); } }); //List<> list1 = (List<>) ; } }; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = (.fragment_fragment1, container, false); initView(); return view; } private void initView() { LeftPresenter leftPresenter=new LeftPresenter(this); (); left = (RecyclerView) (.left_recy); right = (RecyclerView) (.right_recy); rightPresenter = new RightPresenter(this); } @Override public void onSuccess(List<> list) { Message message = (); =list; (message); } @Override public void Failer(String error) { } @Override public void onSuccess2(final List<> list) { /*Message message = (); =list; (message);*/ (new Runnable() { @Override public void run() { LinearLayoutManager linear= new LinearLayoutManager(getActivity(),,false); (linear); RightRecycAdapter rightRecycAdapter=new RightRecycAdapter(getActivity(),list); (rightRecycAdapter); } }); } @Override public void onFailer2(String error) { } }
The above is all the content of this article. I hope it will be helpful to everyone's study and I hope everyone will support me more.