class MHandler extends Handler { public void dispatchMessage(Message msg) { super.dispatchMessage(msg); switch (msg.what) { case MSG_GOODS_OK: if (msg.obj != null) { String vlResult = (String) msg.obj; //解析获取的json数据 List<GoodsInfo> goodsInfos = getGoodsList(vlResult); adapter.setData(goodsInfos); } break;; } } private List<GoodsInfo> getGoodsList(String json) { Gson gson=new Gson();//使用Gson库解析json数据 //创建一个typeToken的匿名子类对象,并调用对象的getType()方法 Type listType=new TypeToken<List<GoodsInfo>>(){}.getType(); //把解析后的数据存放到集合goodsInfos中 List<GoodsInfo>goodsInfos=gson.fromJson(json,listType); return goodsInfos; }
时间: 2024-02-10 17:18:46 浏览: 79
这段代码中的 getGoodsList() 方法是用来做什么的?
这段代码中的 getGoodsList() 方法是用来解析 JSON 数据的,将 JSON 字符串转换为 Java 对象的集合 List<GoodsInfo>。该方法首先创建了一个 Gson 对象,用于解析 JSON 数据。然后利用 Gson 对象的 fromJson() 方法将 JSON 字符串转换为指定类型的 Java 对象。这里采用了 TypeToken 类来获取 List<GoodsInfo> 的类型,使用匿名子类的方式来实现。最后将解析出来的 List<GoodsInfo> 对象返回给调用者。在 MHandler 的 dispatchMessage() 方法中,当收到 MSG_GOODS_OK 消息时,就会调用 getGoodsList() 方法来解析 JSON 数据,并将解析出来的 List<GoodsInfo> 对象传递给 adapter,用于更新列表中的数据。
相关问题
class MHandler extends Handler { public void dispatchMessage(Message msg) { super.dispatchMessage(msg); switch (msg.what) { case MSG_GOODS_OK: if (msg.obj != null) { String vlResult = (String) msg.obj; //解析获取的json数据 List<GoodsInfo> goodsInfos = getGoodsList(vlResult); adapter.setData(goodsInfos); } break;; } }
这段代码是什么意思?
这段代码是一个 Android Handler 类的子类 MHandler,重写了 dispatchMessage() 方法。在这个方法中,首先通过 super.dispatchMessage(msg) 调用父类的 dispatchMessage() 方法,然后根据传入的 Message 对象的 msg.what 属性值来进行不同的操作。当 msg.what 值为 MSG_GOODS_OK 时,如果 msg.obj 不为空,则将其转换为 String 类型的数据 vlResult,然后调用 getGoodsList() 方法解析 vlResult 中的 JSON 数据,将解析后的结果赋值给 adapter.setData() 方法,从而更新列表中的数据。
代码解释 private Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); Bundle bundle; switch (msg.what){ case msgKey1: bundle =msg.getData(); textView.setText(bundle.getString(pingRes)); break; default: break; } } };
这段代码定义了一个私有的Handler类,并重写了它的handleMessage方法。在该方法中,根据msg传递过来的what值进行了不同的操作,当what等于msgKey1时,将msg中的数据通过Bundle获取并设置到textView中,否则不进行任何操作。
阅读全文