在Android中格式化来自数据库的输入流数据

时间:2012-08-31 06:22:02

标签: android json formatting client-server inputstream

我从表中读取数据,因为所有行都被提取并一次传递给每个行到Android客户端。

现在,我需要在阅读时格式化这些数据,即将四列数据中的每一个存储在Android端的单独字符串变量中,以便我可以在文本视图中显示它们。

如果我不是每行发送一次数据,整个表数据会连接成一个字符串并传递给android客户端。

任何提高效率的提示和解决此问题的线索,如果有人需要更多说明,请提出要求。

1 个答案:

答案 0 :(得分:0)

我会以相反的方式做到这一点。我会先将其格式化,然后再将其发送到您的设备。使用类似JSON格式的东西

package com.switchingbrains.json;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.util.Log;

public class JSONHelper {

    // Load JSON from URL
    public String JSONLoad(String url) {

        StringBuilder builder = new StringBuilder();
        HttpClient client = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(url);

        try {
            HttpResponse response = client.execute(httpGet);
            StatusLine statusLine = response.getStatusLine();
            int statusCode = statusLine.getStatusCode();
            if (statusCode == 200) {
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(content));
                String line;
                while ((line = reader.readLine()) != null) {
                    builder.append(line);
                }
            } else {
                Log.e(Main.class.toString(), "Failed to download file");
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return builder.toString();

    }

}

您将获得一个字符串,您可以将其加载到JSONObject中并随心所欲地执行任何操作。