2016-10-29 1 views
3

Ich habe den folgenden CodeWie würden Sie eine Liste in RetroLambda durchlaufen?

List<Trailer> trailers = response.body().getResults(); 
trailers.stream().forEach(trailer -> { 
    View reviewView = LayoutInflater.from(mContext).inflate(R.layout.trailer_list_item, null); 
    ((TextView) reviewView.findViewById(R.id.movies_trailers_list)).setText(trailer.getName()); 
    LinearLayout linearLayout = (LinearLayout) mView.findViewById(R.id.movie_trailers); 
    linearLayout.addView(reviewView); 
}); 

Gibt es eine Möglichkeit, diesen gleichen Code zu bekommen mit retrolambda zu arbeiten? Ich muss durch Listenergebnisse durchlaufen Ich bekomme zurück und fügen Sie eine Ansicht hinzu.

Jeder Rat würde sehr geschätzt werden.

+0

überprüfen Sie diese http://stackoverflow.com/questions/30235441/use-rxjava-and-retrofit-to-iterate-through-list-and-augment-results-based-on-sub –

+0

Danke für die Hilfe! Schau mal drüber nach –

Antwort

4

Ich würde freundlich streamsupport als zusätzliche Bibliothek verwenden für den Teil Java 8 Streams vorschlagen:

import java8.util.stream.StreamSupport; 

StreamSupport.stream(trailers).forEach(trailer -> { 
    View reviewView = LayoutInflater.from(mContext).inflate(R.layout.trailer_list_item, null); 
    ((TextView) reviewView.findViewById(R.id.movies_trailers_list)).setText(trailer.getName()); 
    LinearLayout linearLayout = (LinearLayout) mView.findViewById(R.id.movie_trailers); 
    linearLayout.addView(reviewView); 
}); 

Die erforderlichen Änderungen für Java 8 Stream Code sind in der Regel recht klein und (in den meisten Fällen) Mechaniker.

Es hat einen zusätzlichen Reiz darin, dass es auch bereits die neuen Java 9 Stream-Methoden takeWhile/dropWhile und alle anderen Java 9-Erweiterungen (insbesondere in Optional und Collectors) und Optimierungen bietet. Sie finden das API doc here.

+0

Danke dafür! –

Verwandte Themen