android gson解析json demo,Android用Gson解析json数据的刷新问题?

本文讨论了使用Okhttp进行网络请求并利用Gson解析数据,如何在ListView中更新mDistributionShopsBean导致数据不刷新的问题及解决方法。作者分享了适配器和Handler的交互,以及确保数据同步的关键步骤。
摘要由CSDN通过智能技术生成

问题描述

下面是我的网络请求代码,用的是Okhttp,把返回的数据通过gson进行解析。

然后把解析出来的mDistributionShopsBean 内的List传给了ListView的适配器来显示。

当我想要刷新数据的时候,再次调用这个方法,然后给适配器notifyDataSetChanged()来刷新,但是我发现并没有刷新数据,好像这里的mDistributionShopsBean 并没有更新?

这是为什么?怎么弄才能让mDistributionShopsBean 刷新。

网络请求及数据解析

private void getData(final int type,int offset,String column,String sort) {

String url=Constants.DISTRIBUTIONSHOPS+"?offset="+offset+"&limit=10"+"&column="+column+"&sort="+sort;

OkHttpManager.getAsync(url, new OkHttpManager.DataCallback() {

@Override

public void requestFailure(Call call, IOException e) {

Log.d("BankCardManageActivity", "接口连接失败");

}

@Override

public void requestSuccess(String result) {

Log.d("DistributionShopsActivi", result);

//解析数据

Gson gson = new Gson();

mDistributionShopsBean = gson.fromJson(result, DistributionShopsBean.class);

//初始化数据。

handler.sendEmptyMessage(type);

}

});

}

ListView的适配器。

mCommonAdapter=new CommonAdapter(this, mDistributionShopsBean.getData().getList(), R.layout.item_distribution_shops) {

@Override

public void convert(ViewHolder holder, DistributionShopsBean.DataEntity.ListEntity listEntity) {

holder.setImageURI(R.id.id_draweeView_icon, listEntity.getImg());

}

};

Handler

private Handler handler = new Handler() {

@Override

public void handleMessage(Message msg) {

switch (msg.what) {

case Constants.REFRESHTYPE:

mCommonAdapter.notifyDataSetChanged();

mIdNormallisviewBgarefreshlayout.endRefreshing();

isRefrshing = false;

break;

}

}

};

DistributionShopsBean

public class DistributionShopsBean {

/**

* code : 0

* data : {"shop_size":2,"earnings":225.55,"list":[{"id":18,"merchant_id":3,"shop_id":3,"team_size":0,"commission":"3.00","img":"","name":"API测试"},{"id":1,"merchant_id":1,"shop_id":1,"team_size":3,"commission":"222.55","img":"2015/11/24/FpVvQPAwOf0SODPRMOd1YZnb22vU.png","name":"微巴人人店DEMO"}]}

*/

private int code;

/**

* shop_size : 2

* earnings : 225.55

* list : [{"id":18,"merchant_id":3,"shop_id":3,"team_size":0,"commission":"3.00","img":"","name":"API测试"},{"id":1,"merchant_id":1,"shop_id":1,"team_size":3,"commission":"222.55","img":"2015/11/24/FpVvQPAwOf0SODPRMOd1YZnb22vU.png","name":"微巴人人店DEMO"}]

*/

private DataEntity data;

public void setCode(int code) {

this.code = code;

}

public void setData(DataEntity data) {

this.data = data;

}

public int getCode() {

return code;

}

public DataEntity getData() {

return data;

}

public static class DataEntity {

private int shop_size;

private double earnings;

/**

* id : 18

* merchant_id : 3

* shop_id : 3

* team_size : 0

* commission : 3.00

* img :

* name : API测试

*/

private List list;

public void setShop_size(int shop_size) {

this.shop_size = shop_size;

}

public void setEarnings(double earnings) {

this.earnings = earnings;

}

public void setList(List list) {

this.list = list;

}

public int getShop_size() {

return shop_size;

}

public double getEarnings() {

return earnings;

}

public List getList() {

return list;

}

public static class ListEntity {

private int id;

private int merchant_id;

private int shop_id;

private int team_size;

private String commission;

private String img;

private String name;

public void setId(int id) {

this.id = id;

}

public void setMerchant_id(int merchant_id) {

this.merchant_id = merchant_id;

}

public void setShop_id(int shop_id) {

this.shop_id = shop_id;

}

public void setTeam_size(int team_size) {

this.team_size = team_size;

}

public void setCommission(String commission) {

this.commission = commission;

}

public void setImg(String img) {

this.img = img;

}

public void setName(String name) {

this.name = name;

}

public int getId() {

return id;

}

public int getMerchant_id() {

return merchant_id;

}

public int getShop_id() {

return shop_id;

}

public int getTeam_size() {

return team_size;

}

public String getCommission() {

return commission;

}

public String getImg() {

return img;

}

public String getName() {

return name;

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值