2016-01-21 2 views
1

Как я get and show каждый JSON's Object's value тех, у меня есть внутри Array называется learningцикл для перебора объектов JSON в массив

Вот как JSON массив выглядит следующим образом:

"learning": [ 
{ 
    "code":"2K14 - 2", 
    "os":"Windows - 2" 
}, 
{ 
    "code":"2K15 - 2", 
    "os":"Linux - 2" 
}, 
{ 
    "code":"2K16 - 2", 
    "os":"Mac - 2" 
} 
] 

код

List<Learning> learning = value.getLearning(); 
for(Learning m : learning) { 
    // I guess, here I am missing something, which is really useful 
    String code = m.getCode(); 
    String os = m.getOs(); 
    viewHolder.learning.setText("Code: "+code+" OS: "+os); 
} 

Когда я execute моя программа, getting это:

Code: 2k16, OS: Mac - 2 

В то время как я want to get что-то вроде this:

Code: 2k14 OS: Windows - 2, Code: 2k15 OS: Linux - 2, Code: 2k16 OS: Mac - 2 
+0

как вы разбора JSON? – Blackbelt

+0

'viewholder', im assuiming, вы используете шаблон Viewholder в списке. Нет необходимости в цикле. GetView работает несколько раз, чтобы отобразить элементы списка. Он должен отображать элемент, основанный на позиции. Посмотрите на 'getItem (position)'. – TheSunny

+0

Использование Retrofit @Blackbelt – Oreo

ответ

2

ли это как, если хотите, чтобы показать все данные в одном TextView:

viewHolder.learning.append("Code: "+code+" OS: "+os + ", "); 

Использование TextView.append вместо TextView.setText

+0

спасибо, что append() работал для меня, я поместил ваш ответ как полезный и примет через 7 минут, могу ли я знать Как я могу показать запятую между объектами, как показано выше – Oreo

+0

@Oreo: см. мой ответ на редактирование –

+0

, пожалуйста, взгляните на эту проблему: http://stackoverflow.com/questions/35355559/populate-data-into-recyclerview – Oreo

1

Можете ли вы опубликовать свой интерфейс Retrofit и все классы моделей, связанные с этим?

, и тогда у вас будет что-то подобное, чтобы прочитать его.

String text = ""; 
List<Learning> learning = value.getLearning(); 
for(Learning m : learning) { 
    // I guess, here I am missing something, which is really useful 
    String code = m.getCode(); 
    String os = m.getOs(); 
    text = text + "Code: " + code + " OS: " + os + ", "; 
} 
viewHolder.learning.setText(text); 
+2

Большое вам спасибо, я пометил ваш ответ как полезный, но @ ρяσѕρєяK ответил первым, поэтому я приму его решение :) – Oreo

+0

, пожалуйста, взгляните на эту проблему: http://stackoverflow.com/questions/35355559/populate-data-into-recyclerview – Oreo

0
JSONArray jsonArray = jsonObj.getJSONArray("learning"); 

for(int i = 0; i < jsonArray.length(); i++) 
{ 
    JSONObject obj = jsonArray.getJSONObject(i); 
    String code = obj.getString("code"); 
    String os = obj.getString("os"); 

    Log.i("MyClass", "Code -> " + code); 
    Log.i("MyClass", OS -> " + os); 

} 
Смежные вопросы