如何检索在TextView的JSON数组和显示数据? [英] How to retrieve data from json array and display in textview?

查看:161
本文介绍了如何检索在TextView的JSON数组和显示数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在使用从该链接的示例编码:<一href=\"http://fahmirahman.word$p$pss.com/2011/04/21/connection-between-php-server-and-android-client-using-http-and-json/\" rel=\"nofollow\">http://fahmirahman.word$p$pss.com/2011/04/21/connection-between-php-server-and-android-client-using-http-and-json/在code如下图所示:

I've been using the coding from an example from this link: http://fahmirahman.wordpress.com/2011/04/21/connection-between-php-server-and-android-client-using-http-and-json/ The code is as shown below:

     public class food extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String result = null;
        InputStream is = null;
        StringBuilder sb=null;
        String result=null;
            TextView fdi = (TextView)findViewById(R.id.textView1);
            TextView fdn = (TextView)findViewById(R.id.textView2);

        //http post
        try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://127.0.0.1/food.php");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
        }catch(Exception e){
            Log.e("log_tag", "Error in http connection"+e.toString());
        }

        //convert response to string
        try{
            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
            sb = new StringBuilder();
            sb.append(reader.readLine() + "\n");
            String line="0";

            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }

            is.close();
            result=sb.toString();

        }catch(Exception e){
            Log.e("log_tag", "Error converting result "+e.toString());
        }

        //paring data
        int fd_id;
        String fd_name;
        try{
        jArray = new JSONArray(result);
        JSONObject json_data=null;

        for(int i=0;i<jArray.length();i++){
                json_data = jArray.getJSONObject(i);
                fd_id=json_data.getInt("FOOD_ID");
                fd_name=json_data.getString("FOOD_NAME");
        }

        }catch(JSONException e1){
            Toast.makeText(getBaseContext(), "No Food Found", Toast.LENGTH_LONG).show();
        }catch (ParseException e1){
            e1.printStackTrace();
        }
    }
}

现在我的问题是如何将这个数据传递到一个列表视图,像对于每次迭代,必须与检索到的数据被加入一个列表项。

Now my question is how to pass this data to a list view, like for each iteration a list item must be added with the retrieved data.

请帮我

在此先感谢

推荐答案

您已经获得下code字符串,你为什么不使用。

You are already getting strings in below code, Why don't you use that.

         for(int i=0;i<jArray.length();i++){
            json_data = jArray.getJSONObject(i);
            fd_id=json_data.getInt("FOOD_ID");
            fd_name=json_data.getString("FOOD_NAME");
          }

// fdname和fd_id你得到它的权利,

//fdname and fd_id you are getting it right,

如果您code不工作然后添加你面对什么样的问题。

If your code is not working then add what problem you are facing.

根据你的反应/从下面code服务器导致正在为我和字符串,给出输出,

according to your response/result from the server below code is working for me and giving output in string ,

                try {    
          String response ="[{\"FOOD_ID\":\"1\",\"FOOD_NAME\":\"Rice\"},{\"FOOD_ID\":\"2\",\"FOOD_NAME\":\"Daal\"}] ";
           JSONArray array;

            array = new JSONArray(response);

           for (int i = 0; i < array.length(); i++) {
             JSONObject obj = array.getJSONObject(0);
             String id_fd = obj.getString("FOOD_ID");
             String name_fd = obj.getString("FOOD_NAME");
             Log.d("JSONArray", id_fd+"   " +name_fd);
        }} catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

请根据您的需要使用它。

please use it according to your need.

这篇关于如何检索在TextView的JSON数组和显示数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆