2017-07-01 5 views
0

Je veux montrer la liste des chaînes dans TextView et je reçois cette liste du serveur.
Liste de JSON:Comment afficher la liste des chaînes dans TextView sur Android

"stars": [ 
        { 
         "name": "Elyes Gabel" 
        }, 
        { 
         "name": "Katharine McPhee" 
        }, 
        { 
         "name": "Robert Patrick" 
        } 
       ] 

Je veux montrer ce nom, comme cet exemple:

étoiles = Elyes Gabel, Katharine McPhee, Robert Patrick

I Should setText à partir de cet TextView dans Adaptateur.

Avec le code ci-dessous je peux afficher le nom:

model.get(position).getStars().get(0).getName(); 

Mais me montrer Elyes Gabel !!!

Je veux me montrer, comme ceci:

étoiles = Elyes Gabel, Katharine McPhee, Robert Patrick

Comment puis-je il? Aidez-moi s'il vous plaît

+0

utilisation listview et leur montrer comme liste. ou si vous avez une seule boucle de textview à travers votre liste de valeurs et l'ajouter à textview – Raghunandan

+0

@Raghunandan, pouvez-vous m'envoyer le code complet? S'il vous plaît –

Répondre

0

Vous devez faire une boucle à travers tous les éléments "Star" et construire la chaîne vous-même. Vous devriez avoir quelque chose comme ceci:

String concatenatedStarNames = ""; 
List<Star> stars = model.get(position).getStars(); // I assume the return value is a list of type "Star"! 
for (int i = 0; i < stars.size(); i++) { 
    concatenatedStarNames += stars.get(i).getName(); 
    if (i < stars.size() - 1) concatenatedStarNames += ", "; 
} 

Et puis vous mettre le texte de la vue texte concatenatedStarNames.

0

Vous pouvez le construire vous-même avec un StringBuilder, quelque chose comme:

final Collection<Star> stars = models.get(position).getStars(); 
final StringBuilder builder = new StringBuilder(); 
boolean first = true; 
for (Star star : stars) { 
    final String name = star.getName(); 
    if(first) { 
     first = false; 
     builder.append(name); 
    } else { 
     builder.append(", ").append(name); 
    } 
} 
final String allStarNames = builder.toString(); 
0

vous pouvez juste faire - (avec votre même logique d'étoiles accès)

String strNames; 

for (int i=0; i<starsCount; i++){ //starsCount = No of stars in your JSON 
    strNames += model.get(position).getStars().get(i).getName(); 
    if(i != starsCount-1) 
     strNames += ", "; 
} 

textViewVariable.setText(strNames);