大佬教程收集整理的这篇文章主要介绍了Android RxJava加入列表,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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); }
然后尝试加入两个列表:
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); } });
我做错了什么?我期待着进入我的视野
1
2
3
4
一个
乙
C
d
EDIT1我以下面的答案结束了:
Observable.zip( query1(),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); } });
Concat将从两个或多个Observable发射排放,而不会交错.
另一方面,合并将通过合并它们的排放来组合多个可观察量.
例如:
String[] numbers = {"1","2","3","4"}; String[] letters = {"a","b","c","d"}; Observable<String> query1 = Observable.from(numbers).delay(1,TimeUnit.SECONDS); Observable<String> query2 = Observable.from(letters); Observable .concat(query1,query2) .subscribe(s -> { System.out.printf("-%s-" + s); });
将打印-1–2–3–4 – a – b – c – d-.如果用conc替换concat,结果将是-a-b-c-d-1–2–3–4-.
Zip运算符将通过指定的函数将多个Observable组合在一起.例如
Observable .zip(query1,query2,(String n,String l) -> String.format("(%s,%s)",n,l)) .subscribe(s -> { System.out.printf("-%s-",s); });
以上是大佬教程为你收集整理的Android RxJava加入列表全部内容,希望文章能够帮你解决Android RxJava加入列表所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。