SoFunction
Updated on 2025-03-11

RecyclerView implements product classification function in Android

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&lt;&gt; 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&amp;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&lt;&gt; 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.