Android RecycleView,其中Arraylist的每个项都包含两个Arraylist

Android RecycleView,其中Arraylist的每个项都包含两个Arraylist,android,dynamic,view,android-recyclerview,Android,Dynamic,View,Android Recyclerview,在RecycleView中,有一个Arraylist,每个项目都包含两个不同大小的Arraylist,实际上我想显示cart项目,但我的问题是每个订单都有两种类型的订单,一种是包装类型,另一种是盒子类型,我想显示数据,因为我已经给出了订单,并且数据根据发票号显示,并且每个项目都有两种类型的不同产品号,我已经正确分析了数据,但给出了特定的布局。我的布局可以区分具有多个数据的每个特定订单。这里是我的适配器类 public class OrderAdapter extends RecyclerView

在RecycleView中,有一个Arraylist,每个项目都包含两个不同大小的Arraylist,实际上我想显示cart项目,但我的问题是每个订单都有两种类型的订单,一种是包装类型,另一种是盒子类型,我想显示数据,因为我已经给出了订单,并且数据根据发票号显示,并且每个项目都有两种类型的不同产品号,我已经正确分析了数据,但给出了特定的布局。我的布局可以区分具有多个数据的每个特定订单。这里是我的适配器类

public class OrderAdapter extends RecyclerView.Adapter<OrderAdapter.ItemRowHolder> {

ArrayList<OrderBean> listByInvoice;
private Context mContext;
private ArrayList<OrderBean> orderBeanArrayList;
private int counter;

public OrderAdapter(Context context, ArrayList<OrderBean> orderBeanArrayList) {
    this.orderBeanArrayList = orderBeanArrayList;
    this.mContext = context;

    listByInvoice = new ArrayList<>();
}

@Override
public ItemRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v;

    v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row_order, viewGroup, false);
    v.setLayoutParams(new RecyclerView.LayoutParams(
            RecyclerView.LayoutParams.MATCH_PARENT,
            RecyclerView.LayoutParams.WRAP_CONTENT
    ));
    ItemRowHolder mh = new ItemRowHolder(v, mContext);
    return mh;

}


@Override
public void onBindViewHolder(final ItemRowHolder itemRowHolder, final int i) {

    if (i < orderBeanArrayList.size() - 1) {
        int menulist = orderBeanArrayList.get(i).getOrderMenuBeanArrayList().size();
        int boxlist = orderBeanArrayList.get(i).getOrderBoxBeanArrayList().size();
        int customerlist = orderBeanArrayList.get(i).getOrderBoxBeanArrayList().size();

        for (int k = 0; k < menulist; k++) {


        }
        for (int m = 0; m < boxlist; m++) {

        }
    } else {
        Log.e("LAST", "");
    }


}

@Override
public int getItemCount() {

    return orderBeanArrayList.size();
}

@Override
public int getItemViewType(int position) {

    return super.getItemViewType(position);

}

public class ItemRowHolder extends RecyclerView.ViewHolder {

    TextView tv_serviceType;
    TextView tv_PackageTitle, tv_DATE, tv_TIME, tv_TOTAL_PRICE, tv_Status, tv_orderdatetime;
    TextView tv_BoxTitle, tv_BoxDATE, tv_BoxTIME, tv_Box_TOTAL_PRICE, tv_Box_orderdatetime, tv_Box_Status;
    LinearLayout linear_box, linear_service, ll_menu, ll_box;
    CardView cardView_header;
    Button btn_viewMenu, btn_viewDetail;

    public ItemRowHolder(View view, final Context mContextv) {
        super(view);

        tv_serviceType = (TextView) view.findViewById(R.id.tv_serviceType);
        tv_PackageTitle = (TextView) view.findViewById(R.id.tv_PackageTitle);
        tv_DATE = (TextView) view.findViewById(R.id.tv_DATE);
        tv_TIME = (TextView) view.findViewById(R.id.tv_TIME);
        tv_TOTAL_PRICE = (TextView) view.findViewById(R.id.tv_TOTAL_PRICE);
        tv_Status = (TextView) view.findViewById(R.id.tv_Status);
        tv_orderdatetime = (TextView) view.findViewById(R.id.tv_orderdatetime);

        tv_BoxTitle = (TextView) view.findViewById(R.id.tv_BoxTitle);
        tv_BoxDATE = (TextView) view.findViewById(R.id.tv_BoxDATE);
        tv_BoxTIME = (TextView) view.findViewById(R.id.tv_BoxTIME);
        tv_Box_TOTAL_PRICE = (TextView) view.findViewById(R.id.tv_Box_TOTAL_PRICE);
        tv_Box_orderdatetime = (TextView) view.findViewById(R.id.tv_Box_orderdatetime);
        tv_Box_Status = (TextView) view.findViewById(R.id.tv_Box_Status);

        linear_box = (LinearLayout) view.findViewById(R.id.linear_box);
        linear_service = (LinearLayout) view.findViewById(R.id.linear_service);
        ll_menu = (LinearLayout) view.findViewById(R.id.ll_menu);
        ll_box = (LinearLayout) view.findViewById(R.id.ll_box);
        cardView_header = (CardView) view.findViewById(R.id.cardView_header);

        btn_viewMenu = (Button) view.findViewById(R.id.btn_viewMenu);
        btn_viewDetail = (Button) view.findViewById(R.id.btn_viewDetail);


    }

}
公共类OrderAdapter扩展了RecyclerView.Adapter{ ArrayList listByInvoice; 私有上下文; 私有ArrayList orderBeanArrayList; 专用int计数器; public OrderAdapter(上下文上下文,ArrayList orderBeanArrayList){ this.orderBeanArrayList=orderBeanArrayList; this.mContext=上下文; listByInvoice=新的ArrayList(); } @凌驾 public ItemRowHolder onCreateViewHolder(视图组视图组,int i){ 观点五; v=LayoutInflater.from(viewGroup.getContext()).flate(R.layout.row\u顺序,viewGroup,false); v、 setLayoutParams(新的RecyclerView.LayoutParams( RecyclerView.LayoutParams.MATCH_父级, RecyclerView.LayoutParams.WRAP_内容 )); ItemRowHolder mh=新的ItemRowHolder(v,mContext); 返回mh; } @凌驾 public void onBindViewHolder(final ItemRowHolder ItemRowHolder,final int i){ if(i 我留下了一个空白循环,在这个循环中我尝试了很多思考,但它对我不起作用,我创建了动态视图,但它也造成了问题。

您是否考虑过使用嵌套回收视图查看此博客谢谢您的回复,我已经知道嵌套回收视图,但我的数据不喜欢在内部回收视图中设置。无论项目是包装还是盒子,它都会在其中包含产品,因此您可以为项目创建回收视图,并且每个项目都应该有一个重新设置产品的Cycle视图可以使ordermenu和orderbox继承自基本对象,并使内部recycler视图接受父类型的arraylist您是否考虑过使用嵌套的RecyclerViews查看此博客感谢您的回复,我已经知道嵌套的RecyclerView,但我的数据不喜欢在内部recy中设置cle视图。无论项目是包装还是盒子,它都将包含产品,因此您可以为项目创建回收器视图,并且每个项目都应该具有产品的回收器视图。您可以使ordermenu和orderbox继承自基本对象,并使内部回收器视图接受父类型的arraylist