0

我想在我的列中显示 json 数据,显示与此图像相同的数据http://imgur.com/v4WpJdN 我按照本教程在表格布局中显示 json http://kahdev.wordpress.com/2012/02/19/android -parsing-json-with-jsonobject/ 但我的 josn 不会显示。我编辑我的 json 文件创建新数组“联系人”但它不会显示在屏幕上请查看我的 json 解析代码以解析“联系人”

        public class fifthscreen  extends Activity{



HorizontalListView listview;
CategoryListAdapter3 cla;
String DescriptionAPI;

static ArrayList<Long> Category_ID = new ArrayList<Long>();
static ArrayList<String> Category_name = new ArrayList<String>();
static ArrayList<String> Category_image = new ArrayList<String>();


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fifthscreen);


    listview = (HorizontalListView) this.findViewById(R.id.listview2);

      cla = new CategoryListAdapter3(fifthscreen.this);


      DescriptionAPI = Utils.DescriptionAPI;

         //     clearData();
            try {

                HttpClient client = new DefaultHttpClient();

  HttpConnectionParams.setConnectionTimeout(client.getParams(), 15000);
                HttpConnectionParams.setSoTimeout(client.getParams(), 
         15000);
                HttpUriRequest request = new HttpGet(DescriptionAPI);
                HttpResponse response = client.execute(request);
                InputStream atomInputStream = 
     response.getEntity().getContent();
                BufferedReader in = new BufferedReader(new 
          InputStreamReader(atomInputStream));

                String line;
                String str = "";
                while ((line = in.readLine()) != null){
                    str += line;
                }


                    JSONObject json = new JSONObject(str);
                    JSONArray data = 
           json.getJSONArray("worldpopulation");


                    for (int i = 0; i < data.length(); i++) {
                        JSONObject object = data.getJSONObject(i); 

                    //    JSONObject category = 
        object.getJSONObject("Category");


                        Category_ID.add(Long.parseLong(object.getString("rank")));
                        Category_name.add(object.getString("name"));
                        Category_image.add(object.getString("url"));

                        Log.d("Category name", Category_name.get(i));
                        listview.setAdapter(cla);




      ////Acess Json array Contacts/////////////////////


                        JSONObject json2 = new JSONObject(str);
                        JSONArray data2 = 
         json.getJSONArray("contacts");
                    final TableLayout table = (TableLayout) 
                    findViewById(R.id.table);
                    for (int j = 0; i < data.length(); j++) {
                        final View row = 
             createRow(data.getJSONObject(i));
                        table.addView(row);


                    }










                    }


            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
            //  IOConnect = 1;
                e.printStackTrace();
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }   




  }


public View createRow(JSONObject item) throws JSONException {
        View row = getLayoutInflater().inflate(R.layout.rows, null);
        ((TextView) row.findViewById(R.id.localTime)).setText(item
                .getString("Item"));
        ((TextView) row.findViewById(R.id.apprentTemp)).setText(item
                .getString("Quantity"));

        return row;
    }
   }


   //////my son file i add new array "contact"///////////
       {
 "worldpopulation": [
  {
"rank":1,
"name": "Angelina",
 "url": "http://www.bounty4u.com/android/images/angie.jpg"
 },
 {   
"rank":2,
"name": "Ashton ",
 "url": "http://www.bounty4u.com/android/images/ashton.jpg"
},
{  
"rank":3,
"name": "Jackman",
 "url": "http://www.bounty4u.com/android/images/hugh.jpg"
 }

]
,

 "contacts": [
             {
  "id":1,
"Item": "Calories",
 "Quantity": "150g"
 },
 {   
  "id":2,
 "Item": "Calcium",
 "Quantity": "250g"
 },
 {  
"id":3,
"Item": "Carbohydrates",
 "Quantity": "300g"
 }

]
}







  public class CategoryListAdapter3 extends BaseAdapter {

private Activity activity;
private ImageLoader imageLoader;

public CategoryListAdapter3(Activity act) {
    this.activity = act;
    imageLoader = new ImageLoader(act);
}

public int getCount() {
    // TODO Auto-generated method stub
    return fifthscreen.Category_ID.size();
}

public Object getItem(int position) {
    // TODO Auto-generated method stub
    return position;
}

public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    ViewHolder holder;

    if(convertView == null){
        LayoutInflater inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.viewitem2, null);
        holder = new ViewHolder();

        convertView.setTag(holder);
    }else{
        holder = (ViewHolder) convertView.getTag();
    }


    holder.txtText = (TextView) convertView.findViewById(R.id.title2);
    holder.imgThumb = (ImageView) convertView.findViewById(R.id.image2);

    holder.txtText.setText(fifthscreen.Category_name.get(position));
//  
 imageLoader.DisplayImage(Utils.AdminPageURL+CategoryList.Category_image.get(position),
        imageLoader.DisplayImage(fifthscreen.Category_image.get(position),
            activity, holder.imgThumb);

    return convertView;
}


 }
4

1 回答 1

0

请把命令行放到下面的代码中。

//object.getJSONObject("Category");

(因为没有名为“Category”的 JSONObject)

现在它将顺利工作。

于 2013-11-13T07:18:10.757 回答