2013-08-01 3 views
1

Comment est-ce que je montre ceci dans un tablelayout? Je veux afficher un fichier json comme ceci: Image1Comment afficher JSON dans TableLayout?

Dans mon code ci-dessous la connexion réseau fonctionne qui analyse un nom d'image et une URL et l'afficher. Je veux juste savoir comment ajouter de nouveaux attributs dans mon fichier json comme quantité d'article.

et accéder à mon code d'analyse json et afficher dans la même disposition comme cette image.

Ceci est mon fichier JSON

{ "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" 
     } 
    ] 
} 

Voici mon code:

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); 


        } 


      } 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 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; 
} 


} 
+0

juste annonce nouveau tableau dans mes articles de quantité de fichiers JSON et l'accès et l'affichage dans la mise en page comment faire ido que ??? – user2589245

Répondre

0

Pourquoi vous allez utiliser la mise en page de table. Mêmes fonctionnalités que listview et il est très facile à utiliser donc je vous suggère d'utiliser cette fonctionnalité. Il fournit une facilité de colonne multiple en tant que tablelayout.

S'il vous plaît voir cette link

+0

Je ne sais pas comment afficher les données json comme ça. s'il vous plaît juste ajouter un certain "article" "quantité" factice dans mon fichier json comme cette image http://imgur.com/v4WpJdN et afficher sur l'écran même comme cet écran s'il vous plaît aidez-moi – user2589245

+0

im n'utilisant pas la chaîne je reçois des données sous forme de fichier json. faire ma petite faveur ajouter quelques noeuds ou tableau inmy json fichier et les afficher même comme cette image http://imgur.com/v4WpJdN plz – user2589245

+0

je ne connais pas cette donnée qui est montrer dans l'image http://imgur.com/v4WpJdN est array oumultiples noeuds dans le fichier json je colle mon fichier json ci-dessus juste ajouter quelques nouvelles données là comme "article" quantité "accès en y json code et afficher même comme cet écran http://imgur.com/v4WpJdN – user2589245

0

utiliser google gson

Gson est une bibliothèque Java qui peut être utilisé pour convertir objets Java dans leur représentation JSON. Il peut également être utilisé pour convertir une chaîne JSON en un objet Java équivalent. Gson peut fonctionner avec des objets Java arbitraires, y compris des objets préexistants dont vous n'avez pas le code source.

est facile à utiliser json_encode() en php

voir le lien ci-dessous

read

+0

s'il vous plaît répondre sur mon this http://stackoverflow.com/questions/17990514/how-to-show-json-in-column-my-json-not-display – user2589245