解析多层次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;
}
}