2017-03-20 1 views
0

헤더 (날짜)와 아래 내용 (이 날짜의 계획)으로 listview를 채우고 싶습니다. 나는 2 개의 목록을 가지고 있는데 하나는 헤더 용이고 하나는 내용 용이며 하나는 출력용으로 갖고 싶다.날짜에 따라 Rx Observables 병합

이것은 현재 비효율적 인 구현입니다.

두 개의 목록을 병합하고 하나를 출력하는 Observable 하나의 방법으로이를 수행 할 수 있습니까? 보다 먼저 계획이 오늘 날 계획에 사용 가능하고 그 다음 헤더가있는 경우 header-date를 출력해야합니다. 수신이 그 적합한 도구되지 않도록

for (int i = 0; i < 7; i++) { 
      int currentHeaderPosition = listItems.size(); 
      LocalDate currentDate = startDate.plusDays(i); 
      listItems.add(currentDate); 
      Observable.fromIterable(data.shiftPlannings) 
        .filter(planning -> planning.getStartTime().compareTo(currentDate) == 0) 
        .subscribe(planning -> { 
         listItems.add(planning);}); 

    } 

답변

-1

코드에서, 그것의, 당신은 인 - 메모리 데이터에 작용하는 것, 수신은 시간이 지남에 따라 수집/이벤트입니다.

쉽게 할 수 있고 일주일에 목록의 목록/배열을 가지며 plannings 개체를 반복하고 각 계획을 일치 목록에 추가 할 수 있습니다.