解析多层次Bean类怎么写?怎么展示?

在这里举例一个接口:
http://172.17.8.100/small/commodity/v1/commodityList

在这里插入图片描述
从里往外一层一层走,看清 是从里往外 从里往外 从里往外

第一层

public class JsonBean {

private int commodityId;
private String commodityName;
private String masterPic;
private int price;
private int saleNum;

}

第二层

// 这一层包含第一层
public class TwoBean {

private ArrayList<JsonBean> commodityList;
private int id;
private String name;

}

第三层

// 这一层包含第二层
public class Result {

private ArrayList<TwoBean> mlss;
private ArrayList<TwoBean> pzsh;
private ArrayList<TwoBean> rxxp;

}

第四层

// 这一层包含第三层
public class fourBean {

private String message;
private Result result;
private String status;

}

接下来就是在MainActivity里开始解析,上面不要忘了添加set get 方法

HttpUtil.getActask(url, new HttpUtil.BackA() {
//解析\

                @Override
                public void getData(String s) {
                    Gson gson = new Gson();
                    fourBean jsonBean = gson.fromJson(s, fourBean.class);
                    Result result = jsonBean.getResult();
                    ArrayList<JsonBean> commodityList1 = result.getMlss().get(0).getCommodityList();
                    ArrayList<JsonBean> commodityList2 = result.getPzsh().get(0).getCommodityList();
                    ArrayList<JsonBean> commodityList3 = result.getRxxp().get(0).getCommodityList();
                    list = new ArrayList<>();
                    list.addAll(commodityList1);
                    list.addAll(commodityList2);
                    list.addAll(commodityList3);
                    adapter = new XAdapter(MainActivity.this, list);
                    listview.setAdapter(adapter);
                    listview.stopRefresh();
                }
            });
            ****//如果使用的事XListview还要写****
            
             HttpUtil.getActask(url, new HttpUtil.BackA() {
                //解析
                @Override
                public void getData(String s) {
                    Gson gson = new Gson();
                    fourBean jsonBean = gson.fromJson(s, fourBean.class);
                    Result result = jsonBean.getResult();
                    ArrayList<JsonBean> commodityList1 = result.getMlss().get(0).getCommodityList();
                    ArrayList<JsonBean> commodityList2 = result.getPzsh().get(0).getCommodityList();
                    ArrayList<JsonBean> commodityList3 = result.getRxxp().get(0).getCommodityList();
                    ArrayList<JsonBean> list2 = new ArrayList<>();
                    list2.addAll(commodityList1);
                    list2.addAll(commodityList2);
                    list2.addAll(commodityList3);
                    list.addAll(list2);
                    adapter.notifyDataSetChanged();
                    listview.stopLoadMore();
                }
            });
             HttpUtil.getActask(url, new HttpUtil.BackA() {
        **//下面是方法外面放的**
        @Override
        public void getData(String s) {
            Gson gson = new Gson();
            fourBean jsonBean = gson.fromJson(s, fourBean.class);
            Result result = jsonBean.getResult();
            ArrayList<JsonBean> commodityList1 = result.getMlss().get(0).getCommodityList();
            ArrayList<JsonBean> commodityList2 = result.getPzsh().get(0).getCommodityList();
            ArrayList<JsonBean> commodityList3 = result.getRxxp().get(0).getCommodityList();
            list = new ArrayList<>();
            list.addAll(commodityList1);
            list.addAll(commodityList2);
            list.addAll(commodityList3);
            adapter = new XAdapter(MainActivity.this, list);
            listview.setAdapter(adapter);
        }
    });

下面展示适配器的代码

    @Override
public View getView(int position, View convertView, ViewGroup parent) {

    int type = getItemViewType(position);
    switch (type){
        case 0:
            ViewHolder1 holder1 = null;
            if (convertView==null){
                convertView = View.inflate(context,R.layout.item01,null);
                holder1 = new ViewHolder1();
                holder1.imageView1 = convertView.findViewById(R.id.imageview1);
                holder1.textView1 = convertView.findViewById(R.id.textview1);
                convertView.setTag(holder1);
            }else{
                holder1 = (ViewHolder1) convertView.getTag();
            }
            JsonBean jsonBean = list.get(position);
            holder1.textView1.setText(jsonBean.getCommodityName());
            Glide.with(convertView).load(jsonBean.getMasterPic()).into(holder1.imageView1);
            break;
        case 1:
            ViewHolder2 holder2 = null;
            if (convertView==null){
                convertView = View.inflate(context,R.layout.item02,null);
                holder2 = new ViewHolder2();
                holder2.imageView2 = convertView.findViewById(R.id.imageview1);
                holder2.textView2 = convertView.findViewById(R.id.textview1);
                convertView.setTag(holder2);
            }else{
                holder2 = (ViewHolder2) convertView.getTag();
            }
            JsonBean jsonBean2 = list.get(position);
            holder2.textView2.setText(jsonBean2.getCommodityName());
            Glide.with(convertView).load(jsonBean2.getMasterPic()).into(holder2.imageView2);
            break;
        case 2:
            ViewHolder3 holder3 = null;
            if (convertView==null){
                convertView = View.inflate(context,R.layout.item03,null);
                holder3 = new ViewHolder3();
                holder3.imageView3 = convertView.findViewById(R.id.imageview1);
                holder3.textView3 = convertView.findViewById(R.id.textview1);
                convertView.setTag(holder3);
            }else{
                holder3 = (ViewHolder3) convertView.getTag();
            }
            JsonBean jsonBean3 = list.get(position);
            holder3.textView3.setText(jsonBean3.getCommodityName());
            Glide.with(convertView).load(jsonBean3.getMasterPic()).into(holder3.imageView3);
            break;
    }


    return convertView;
}


class ViewHolder1{
    ImageView imageView1;
    TextView textView1;
}
class ViewHolder2{
    ImageView imageView2;
    TextView textView2;
}
class ViewHolder3{
    ImageView imageView3;
    TextView textView3;
}
@Override
public int getViewTypeCount() {
    return 3;
}

@Override
public int getItemViewType(int position) {
    return position%3;
}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值