在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 從列表創(chuàng)建一個Observable
combineLatest
從列表創(chuàng)建一個Observable
RxJava的與眾不同之處
Schedulers
RxJava觀察者模式工具包
總結(jié)
工具
你什么時候使用觀察者模式?
GroupBy
App架構(gòu)
組合Observables
創(chuàng)建Activity類
StartWith
RX - 從.NET到RxJava
處理耗時的任務(wù)
過濾Observables
向響應(yīng)式世界問好
避免阻塞I/O的操作
Join
有且僅有一次
Schedulers-解決Android主線程問題
轉(zhuǎn)換Observables
啟動引擎
我們的第一個Observable
總結(jié)
StrictMode
Debounce
*map家族
創(chuàng)建RecyclerView Adapter
為什么是Observables?
Merge
再多幾個例子
總結(jié)
Buffer
Window
總結(jié)
Timeout
執(zhí)行網(wǎng)絡(luò)任務(wù)
項目目標(biāo)
來到Java世界 - Netflix RxJava
獲取我們需要的數(shù)據(jù)
Observable
過濾序列
非阻塞I/O操作
ZIP
總結(jié)
And,Then和When
觀察者模式
Retrofit
Cast
Skip and SkipLast
微軟響應(yīng)式擴(kuò)展
與REST無縫結(jié)合-RxJava和Retrofit
First and last
RxJava Essentials 中文翻譯版
Switch
ElementAt
總結(jié)
總結(jié)
總結(jié)
Sampling
SubscribeOn and ObserveOn
Subject = Observable + Observer

從列表創(chuàng)建一個Observable

在這個例子中,我們將引入from()函數(shù)。使用這個特殊的“創(chuàng)建”函數(shù),我們可以從一個列表中創(chuàng)建一個Observable。Observable將發(fā)射出列表中的每一個元素,我們可以通過訂閱它們來對這些發(fā)出的元素做出響應(yīng)。

為了實現(xiàn)和第一個例子同樣的結(jié)果,我們在每一個onNext()函數(shù)更新我們的適配器,添加元素并通知插入。

我們將復(fù)用和第一個例子同樣的結(jié)構(gòu)。主要的不同的是我們不再檢索已安裝的應(yīng)用列表。列表由外部實體提供:

mApps = ApplicationsList.getInstance().getList();

獲得列表后,我們僅需將它響應(yīng)化并填充RecyclerView的item:

private void loadList(List<AppInfo> apps) {
    mRecyclerView.setVisibility(View.VISIBLE);
    Observable.from(apps)
            .subscribe(new Observer<AppInfo>() {

                @Override
                public void onCompleted() {
                    mSwipeRefreshLayout.setRefreshing(false);
                    Toast.makeText(getActivity(), "Here is the list!", Toast.LENGTH_LONG).show();
                }

                @Override
                public void onError(Throwable e) {
                    Toast.makeText(getActivity(), "Something went wrong!", Toast.LENGTH_SHORT).show();
                    mSwipeRefreshLayout.setRefreshing(false);
                }

                @Override
                public void onNext(AppInfo appInfo) {
                    mAddedApps.add(appInfo); 
                    mAdapter.addApplication(mAddedApps.size() - 1,appInfo);
                }
            });
}

正如你看到的,我們將已安裝的應(yīng)用程序列表作為參數(shù)傳進(jìn)from()函數(shù),然后我們訂閱生成的Observable。觀察者和我們第一個例子中的觀察者十分相像。一個主要的不同是我們在onCompleted()函數(shù)中停掉進(jìn)度條是因為我們一個一個的發(fā)射元素;第一個例子中的Observable發(fā)射的是整個list,因此在onNext()函數(shù)中停掉進(jìn)度條的做法是安全的。