2016-10-29 3 views
3

У меня есть следующий кодКак бы вы перебирали список в retrolambda?

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); 
}); 

Есть ли способ, чтобы получить тот же самый код для работы с retrolambda? Мне нужно повторить результаты списка результатов. Я возвращаюсь и добавляю его в представление.

Любые советы были бы весьма полезными.

+0

проверить это http://stackoverflow.com/questions/30235441/use-rxjava-and-retrofit-to-iterate-through-list-and-augment-results-based-on-sub –

+0

Спасибо за помощь! Посмотрите на это сейчас –

ответ

4

Я любезно предлагают использовать streamsupport в качестве дополнительной библиотеки для Java 8 потоков части:

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); 
}); 

Необходимые изменения для Java 8 кода потока, как правило, достаточно мал и (в большинстве случаев) механика.

У него есть дополнительная привлекательность, поскольку он также предоставляет новые методы Java 9 Stream takeWhile/dropWhile и все другие усовершенствования Java 9 (особенно в опциях и сборщиках) и оптимизации. Вы можете найти API doc here.

+0

Спасибо за это! –

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