2013-10-14 2 views
0

c'est mon code et ça fonctionne bien. Je veux obtenir plusieurs valeurs (y compris l'adresse d'image) de mes données JSON et les montrer dans chaque rangée de ma listview mais je ne pourrais pas faire cela je pourrais juste obtenir une donnée (titre) et mettre cela dans la liste simple, comment je peut remplacer android.R.layout.simple_list_item_1 avec ma propre disposition d'une seule rangée? Je suis nouveau à android et je ne pouvais pas comprendre la boucle des listes de lecture et des lignes.obtenir des données en utilisant volley de JSON à listview avec customadapter

ce que je veux faire est d'obtenir des données de JSON et les afficher dans ma mise en page de ligne personnalisée, quelque chose comme google plus de liste, avec des images, le titre et la description

désolé pour mon mauvais anglais :)

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    context = this; 
    setContentView(R.layout.activity_read_restaurants); 
    restaurantList = (ListView) findViewById(R.id.restaurantList); 


    final ArrayAdapter<String> restaurantAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,restaurantArray); 
    restaurantList.setAdapter(restaurantAdapter); 

    RequestQueue rq = Volley.newRequestQueue(this); 
    JsonObjectRequest jsonrequest = new JsonObjectRequest(Request.Method.GET,feedURL,null, 
      new Response.Listener<JSONObject>() { 

       @Override 
       public void onResponse(JSONObject response) { 
        try { 
         JSONArray restaurants = response.getJSONArray("posts"); 
         for (int i =0; i<restaurants.length(); i++){ 
          restaurantArray.add(restaurants.getJSONObject(i).getString("title")); 
         } 
        } catch (JSONException e) { 

         e.printStackTrace(); 
        } 
        restaurantAdapter.notifyDataSetChanged(); 
       } 

      },new Response.ErrorListener() { 

       @Override 
       public void onErrorResponse(VolleyError error) { 
        Toast.makeText(context, error.toString(), Toast.LENGTH_LONG).show(); 

       } 
      }); 


    rq.add(jsonrequest); 
} 
+0

salut, android.R.layout.simple_list_item_1 est par défaut système android et ne peut avoir qu'un seul textview en it.replace avec votre propre mise en page qui peut avoir plus d'un textview et le gonfler –

+0

merci pour votre réponse, j'ai essayé pour faire cela plusieurs fois, j'ai fait ma propre mise en page pour la ligne mais je ne sais pas où et comment obtenir les données et définir le texte (et/ou src image) à mes éléments de mise en page – Siavash

+0

Créer une classe étendant ArrayAdapter et remplacer la méthode getView pour gonflez votre ligne personnalisée – Mikel

Répondre

Questions connexes