如何在Android中显示数据并更新其值

时间:2018-10-09 17:27:04

标签: android

我正在开发一个简单的android应用程序,该应用程序通过json从后台服务接收一个websocket字符串。 json数据会随着时间变化。例如,json字符串为:

{"app":"events","command":"handleEvents","args":{"eventId":16,"name":"X2_PA_STATE","params":[0]}}

由于参数值一直在变化,如何通过TextView显示它并自动更新它的值?我已经尝试了事件监听器,但似乎无法正常工作。

2 个答案:

答案 0 :(得分:0)

Android具有内置的JSON解析器。

JSONObject obj = new JSONObject(<res_json_string>);
String app = obj.optString("app");
String command = obj.optString("command");
JSONObject args = obj.optJSONObject("args");
String eventId = args.optString("eventId");
String name = args.optString("name");
JSONArray p = args.optJSONArray("params");
ArrayList<String> params = new ArrayList<>();
for(int i = 0; i < p.length; i++){
   params.add(p.get(i));
}

由于您处于后台服务中,因此必须使用HandlerBroadcastReceiver才能完成此任务。 (仅可以从UI线程更新UI)

请参见此链接,例如Updating UI from Service

希望这会有所帮助,祝您编程愉快!

答案 1 :(得分:0)

如果我的理解正确,那么您有某种与Web无关的websocket服务可以发送数据。您可能缺少的部分是将websocket实现添加到Android应用中,以侦听websocket服务并解析数据。然后,您可以在每次从网络套接字接收数据时调用textview.setText()方法来更新textview值。

在这种情况下,请看一下OkHttp WebSocket的实现

https://square.github.io/okhttp/3.x/okhttp/okhttp3/WebSocket.html