j2me:显示大量结果的推荐方式



我想问你是否知道显示来自WebService的数据(可能是表格格式)的实用方法。

我是j2me的新手,我刚刚学会了如何使用RESTful web服务,现在我需要学习如何向用户显示数据(以json格式出现)。

基本上这就是我使用的代码:

 protected String jsonParse(String url) {
        StringBuffer stringBuffer = new StringBuffer();
        InputStream is = null;
        HttpConnection hc = null;
        System.out.println(url);
        String Results = null;
        try {
            mProgressString.setText("Connecting...");
            hc = (HttpConnection) Connector.open(url, Connector.READ);
            hc.setRequestMethod(HttpConnection.GET);
            hc.setRequestProperty("User-Agent", "Profile/MIDP-2.1 Configuration/CLDC-1.1");
            if (hc.getResponseCode() == HttpConnection.HTTP_OK) {
                is = hc.openInputStream();
                int ch;
                while ((ch = is.read()) != -1) {
                    stringBuffer.append((char) ch);
                }
            }
        } catch (SecurityException se) {
            System.out.println("Security Excepction: " + se);
        } catch (NullPointerException npe) {
            System.out.println("Null Pointer Excepction: " + npe);
        } catch (IOException ioe) {
            System.out.println("IO Exception" + ioe);
        }
        try {
            hc.close();
            is.close();
        } catch (Exception e) {
            System.out.println("Error in MostActivePareser Connection close:" + e);
            e.printStackTrace();
        }
        String jsonData = stringBuffer.toString();
        try {
            JSONArray js = new JSONArray(jsonData);            
            System.out.println(js.length());
            mProgressString.setText("Reading...");
            String Results = "";
            for (int i = 0; i < js.length(); i++) {
                JSONObject jsObj = js.getJSONObject(i);
                Results += "-----------------------------------n";
                Results += jsObj.getString("Name") + " n";
                Results += jsObj.getString("Phone") + " n";
                Results += jsObj.getString("Address");
            }
        } catch (JSONException e1) {
            System.out.println("Json Data error:" + e1);
            e1.printStackTrace();
        } catch (NullPointerException e) {
            System.out.println("null error:" + e);
        }
         return Results;
   }

正如您所看到的,我只是将结果连接起来,然后显示给用户。但肯定有更好的办法我现在需要你的帮助。

如何在j2me中显示一个典型的json数组?当你必须处理大量结果时,你如何处理有限的内存和小屏幕尺寸等限制?

一如既往,如果您能提供任何建议或资源,我将不胜感激。

提前感谢。

注:这是我用来处理json的jar。

这个链接一定会帮助你处理JSONArray。

谈论内存限制,你只是试图清理资源/数据结构,你不需要任何更多的意味着UI只是保持当前屏幕的实例存活(如果可能的话),不需要其他实例在堆栈中。如果您的数组包含许多对象,而您不能一次显示这些对象(这可能导致类似于OOM的问题),那么您可以考虑分页。

你可以从这个必须看到的演示中得到关于内存优化的更好的想法