深入淺出RxJava—操作符
public Observable<List<String>> query() {
23 List<String> list = new ArrayList<>();
4 list.add("baidu");
5 list .add("youku");
6 list.add("iqiyi");
7 list.add("sohu");
8 list.add("");
910 return Observable.just(list);
11 }
查詢將輸入地址: query().subscribe(new Action1<List<String>>() {
2
@Override
3
public void call(List<String> list) {
4
5
for (String s : list) {
6
Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show();
7
}
8
}
9
});
query().map(new Func1<List<String>, String>() {
2 @Override
3 public String call(List<String> list) {
4 for (String s : list) {
5 return s;
6 }
7 return null;
8 }
9 }).subscribe(new Action1<String>() {
10 @Override
11 public void call(String s) {
12 Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show();
13 }
14 });
這樣的程式碼依舊要使用集合遍歷的方式才能獲取到每一個元素。幸運的是RxJava提供了另外一個方法from,它接受一個集合作為輸入,然後每次輸出一個元素給subscriber。 query().subscribe(new Action1<List<String>>() {
2
@Override
3
public void call(List<String> list) {
4
Observable.from(list).subscribe(new Action1<String>() {
5
@Override
6
public void call(String s) {
7
Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show();
8
}
9
});
10
}
11
});
query().flatMap(new Func1<List<String>, Observable<String>>() {
2 @Override
3 public Observable<String> call(List<String> list) {
4 return Observable.from(list);
5 }
6 }).subscribe(new Action1<String>() {
7 @Override
8 public void call(String s) {
9 Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show();
10相關推薦
深入淺出RxJava—操作符
原文連結 參考文章 本篇文章將重點介紹RxJava中的操作符,RxJava的強大性就來於它所定義的操作符。 假如我們現在有這樣一個介面,返回一個網站地址list集合,並將集合資料進行列印,基於上一篇文章,我們可能寫出這樣的程式碼: 先貼
轉:深入淺出RxJava(二:操作符)
包含 不想 sub return -m name 這就是 其他 cal 原文地址:http://blog.csdn.net/lzyzsd/article/details/44094895#comments 在第一篇blog中,我介紹了RxJava的一些基礎知識,同時也介
深入淺出RxJava(二:操作符)
pub clas 破壞 new 分解 () 調用 script rri 看完這篇blog,我相信你肯定想立即在你的項目中使用RxJava了,這篇blog將介紹許多RxJava中的操作符,RxJava的強大性就來自於它所定義的操作符。首先先看一個例子: 準備工作 假設我有這
深入淺出RxJava之操作符篇
宣告:此部落格是基於大頭鬼Bruce 的http://blog.csdn.net/lzyzsd/article/details/44094895的譯文,RxJava初學者一枚,翻了一些相關文章大多不太容易理解,讓人看不進去,就理解難易來說,原博文的確是比較不錯的
RxJava操作符總結之過濾
println 能夠 seconds 什麽 range tor array 延遲 lines RxJava操作符總結之過濾 jsut() just(T t1, T t2, T t3 ....) ,just能夠傳入多個同樣類型的參數,並將當前參數一
Android RxJava操作符詳解系列: 變換操作符
urn 原因 轉換 需要 生產 依賴 reat 入門 所有 Rxjava,由於其基於事件流的鏈式調用、邏輯簡潔 & 使用簡單的特點,深受各大 Android開發者的歡迎。Github截圖 如果還不了解 RxJava,請看文章:Android:這是一篇 清晰 &
Android RxJava操作符的學習---過濾操作符----聯想搜尋優化
1. 需求場景 2. 功能說明 3. 具體實現 佈局檔案:activity_filter.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="ht
Android RxJava操作符的學習---過濾操作符----功能防抖
1. 需求場景 2. 功能說明 3. 具體實現 // 註冊控制元件 Button button; button = (Button)findViewById(R.id.button); /*
Android RxJava操作符的學習---過濾操作符
3.5 過濾操作符 作用 過濾 / 篩選 被觀察者(Observable)傳送的事件 & 觀察者 (Observer)接收的事件 應用場景 根據 指定條件 過濾事件 根據 指定事件數量 過濾事件 根據 指定時間 過濾事件
Android RxJava操作符的學習---功能性操作符--網路請求出錯重連(結合Retrofit)
1. 需求場景 2. 功能說明 功能需求說明 功能邏輯 例項說明 在本例子中:採用Get方法對 金山詞霸API 傳送網路請求 通過 斷開網路連線 模擬 網路異常錯誤(恢復網路即可
Android RxJava操作符的學習---功能性操作符--(有條件)網路請求輪詢(結合Retrofit)
1. 需求場景 2. 功能說明 採用Get方法對 金山詞霸API 按規定時間重複傳送網路請求,從而模擬 輪詢 需求實現 停止輪詢的條件 = 當輪詢到第4次時 採用 Gson 進行資料解析 3.
Android RxJava操作符的學習---功能性操作符
3.4 功能性操作符 作用 輔助被觀察者(Observable) 在傳送事件時實現一些功能性需求 實際應用場景 連線(訂閱) 觀察者 & 被觀察者 執行緒排程(切換) 錯誤處理 事件生命週期操作 延時操作 重複傳送操作
Android RxJava操作符的學習---組合合併操作符---聯合判斷多個事件
1. 需求場景 需要同時對多個事件進行聯合判斷 如,填寫表單時,需要表單裡所有資訊(姓名、年齡、職業等)都被填寫後,才允許點選 "提交" 按鈕 2. 功能說明 此處採用 填寫表單 作為聯合判斷功能展示 即,表單裡所有資訊(姓名、年齡、職業等)都被填寫後,
Android RxJava操作符的學習---組合合併操作符---從磁碟或記憶體快取中獲取快取資料
1. 需求場景 2. 功能說明 對於從磁碟 / 記憶體快取中 獲取快取資料 的功能邏輯如下: 3. 具體實現 詳細請看程式碼註釋 // 該2變數用於模擬記憶體快取 & 磁碟快取中的資料 String me
Android RxJava操作符的學習---組合合併操作符---合併資料來源並展示
1. 需求場景 2. 功能說明 即,同時向2個數據源獲取資料 -> 合併資料 -> 統一展示到客戶端 3. 具體實現 此處採用Merge() & Zip()操作符進行講解,其中: Merge()例子 :實現較為簡單
Android RxJava操作符的學習---組合 / 合併操作符
3.3 組合 / 合併操作符 3.3.1. 作用 組合 多個被觀察者(Observable) & 合併需要傳送的事件 應用場景 組合多個被觀察者 合併多個事件 傳送事件前追加發送事件 統計傳送事件數量 3.3.
Android RxJava操作符的學習---變換操作符---網路請求巢狀回撥
變換操作符的主要開發需求場景 = 巢狀回撥(Callback hell) 下面,我將採用一個實際應用場景例項來講解巢狀回撥(Callback hell) 1. 需求場景 1.1 背景 需要進行巢狀網路請求:即在第1個網路請求成功後,繼續再進行一次網路請求 如
Android RxJava操作符的學習---變換操作符
3.2 變換操作符 3.2.1.作用 對事件序列中的事件 / 整個事件序列 進行加工處理(即變換),使得其轉變成不同的事件 / 整個事件序列 具體原理 3.2.2.作用型別 應用場景 巢狀回撥(Callback hell) 根
Android RxJava操作符的學習---建立操作符--(無條件)網路請求輪詢
1. 需求場景 2. 功能說明 本文將採用Get方法對 金山詞霸API 按規定時間 重複傳送網路請求,從而模擬 輪詢 需求實現 採用 Gson 進行資料解析 3. 具體實現 下面結合 Ret
Android RxJava操作符的學習---建立操作符
RxJava如此受歡迎的原因,在於其提供了豐富 & 功能強大的操作符,幾乎能完成所有的功能需求 1. 簡介 RxJava 操作符的具體簡介如下: 2. 型別 RxJava功能強大,所以其對應的操作符的型別也非常多 根據功能作用的不同,Rx