Cố gắng hiểu tất cả những thứ RxJava đó. Tôi đang làm ví dụ sau:Android RxJava tham gia danh sách
private Observable<List<String>> query1() {
List<String> urls = new ArrayList<>();
urls.add("1");
urls.add("2");
urls.add("3");
urls.add("4");
return Observable.just(urls);
}
private Observable<List<String>> query2() {
List<String> urls = new ArrayList<>();
urls.add("A");
urls.add("B");
urls.add("C");
urls.add("D");
return Observable.just(urls);
}
và sau đó cố gắng để tham gia hai danh sách:
Observable.zip(
query1(),
query2(),
new Func2<List<String>, List<String>, Observable<String>>() {
@Override
public Observable<String> call(List<String> a1, List<String> a2) {
List<String> list = new ArrayList<>();
list.addAll(a1);
list.addAll(a2);
return Observable.from(list);
}
})
.subscribe(new Action1<String>() { // <-- It says, cannot resolve method subscribe
@Override
public void call(String string) {
String text = testTextView.getText().toString();
testTextView.setText(text + "\n" + string);
}
});
Những gì tôi đang làm sai? Tôi đã chờ đợi để có được quan điểm của tôi Một B C D
EDIT1 tôi đã kết thúc với câu trả lời như sau:
Observable.zip(
query1(),
query2(),
new Func2<List<String>, List<String>, List<String>>() {
@Override
public List<String> call(List<String> a1, List<String> a2) {
List<String> list = new ArrayList<>();
list.addAll(a1);
list.addAll(a2);
return list;
}
})
.flatMap(new Func1<List<String>, Observable<String>>() {
@Override
public Observable<String> call(List<String> urls) {
return Observable.from(urls);
}
})
.subscribe(new Action1<String>() {
@Override
public void call(String string) {
String text = testTextView.getText().toString();
testTextView.setText(text + "\n" + string);
}
});
EDIT2concat
giải pháp theo đề xuất của ihuk sẽ tốt hơn nhiều trong trường hợp này. Đánh giá cao cho tất cả các câu trả lời.
Cảm ơn ví dụ 'concat'. – krisk