public void onReceived(String data) { Log.d(TAG,"收到蓝牙消息!"); Type typeJson = new TypeToken<Map<String, Object>>() {}.getType(); Map<String, Object> map = new Gson().fromJson(data, typeJson); receiveMessageMethod(map.get("message").toString(),map.get("messageType").toString()); } };
时间: 2024-04-21 14:27:17 浏览: 87
这是一个匿名内部类,实现了BluetoothManager类的OnReceivedListener接口。当BluetoothManager接收到数据时,会调用该方法。该方法首先通过Log打印出一条调试信息,然后使用Gson库将接收到的数据从JSON格式转换为Map<String, Object>类型的数据,接着调用receiveMessageMethod()方法,该方法将map中的"message"和"messageType"两个键对应的值作为参数传入。
相关问题
private BluetoothManager.OnReceivedListener onReceivedListener = new BluetoothManager.OnReceivedListener() { @Override public void onReceived(String data) { Log.d(TAG,"收到蓝牙消息!"); Type typeJson = new TypeToken<Map<String, Object>>() {}.getType(); Map<String, Object> map = new Gson().fromJson(data, typeJson); receiveMessageMethod(map.get("message").toString(),map.get("messageType").toString()); } };
这段代码中的Gson是Google提供的一个Json解析库,可以将Json字符串解析成Java对象,并将Java对象转换成Json字符串。在这段代码中,通过调用Gson的fromJson方法,将收到的Json字符串解析成一个Map对象。在fromJson方法中,使用了一个TypeToken来指定解析后的对象类型为Map<String, Object>。这样可以方便地获取消息内容和消息类型,并将它们传递给receiveMessageMethod方法。
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; }
这段代码中的 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,用于更新列表中的数据。
阅读全文