2016-06-26 3 views
0

Ich bekomme Daten von der Serverseite zu meinem RecyclerView, aber der Code setzt immer den letzten Text zu meinem TextView. Ich bin so verwirrt. Kannst du mir helfen? Vielen Dank. Ich teile meinen Code unten.Schleife setzt immer die letzten Daten zu TextView in Android

private void bindDatas() { 

    Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl(NewsService.BASE_URL) 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 

    NewsService newsService = retrofit.create(NewsService.class); 
    final Call<NewsCatalog> requestCatalog = newsService.newsCatalog(); 


    requestCatalog.enqueue(new Callback<NewsCatalog>() { 
     @Override 
     public void onResponse(Call<NewsCatalog> call, Response<NewsCatalog> response) { 
      NewsCatalog catalog = response.body(); 
      SubNodes subNodes = new SubNodes(); 
      mainNodes = new MainNodes(); 


      for (int i = 0; i < catalog.nodes.size(); i++) { 
       mainNodes = catalog.nodes.get(i); 
       Log.i(TAG, "" + mainNodes.node.body); 

       subNodes.setBody(mainNodes.node.body); 

       subNodesList.add(subNodes); 
       adapter.notifyDataSetChanged(); 
      } 
     } 

     @Override 
     public void onFailure(Call<NewsCatalog> call, Throwable t) { 
      Log.e(TAG, "Error: " + t.getMessage()); 
     } 
    }); 
} 

Antwort

1

Soweit ich sehen kann, war Ihre subNodes immer die gleiche Instanz?

So die SubNodes Nummer wurde nicht erhöht.

Ich denke, untergeordnete Knoten zu schaffen, in Schleife sein soll:

for (int i = 0; i < catalog.nodes.size(); i++) 
    mainNodes = catalog.nodes.get(i); 
    Log.i(TAG, "" + mainNodes.node.body); 

    subNodes = new SubNodes(); // ADD THIS LINE 

    subNodes.setBody(mainNodes.node.body); 

    subNodesList.add(subNodes); 
    adapter.notifyDataSetChanged(); 
} 
+0

vielen Dank @sakiM es funktioniert :) – nuhkoca

Verwandte Themen