Amrmsmb
Amrmsmb

Reputation: 1

onNext is not getting called

As shown in the following code, I would like to use RxAndroid. but when i run the code, i dont receive any logs from

            @Override
            public void onNext(String s) {
                Log.d(TAG, "Name: " + s);
            }

please let me know hopw to fix these issue.

code:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Observer<String> animalsObserver = getAnimalsObserver();
        getAnimalsObservable()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .filter(new Func1<String, Boolean>() {
                    @Override
                    public Boolean call(String s) {
                        return s.toUpperCase().equals("D");
                    }
                })
                .subscribe(animalsObserver);
    }

    private Observable getAnimalsObservable() {
        return Observable.from(Arrays.asList(
                new String[] {
                        "Ant", "Ape",
                        "Bat", "Bee", "Bear", "Butterfly",
                        "Cat", "Crab", "Cod",
                        "Dog", "Dove",
                        "Fox", "Frog"
                }
                ));
    }

    private Observer<String> getAnimalsObserver() {
        return new Observer<String>() {
            @Override
            public void onNext(String s) {
                Log.d(TAG, "Name: " + s);
            }

            @Override
            public void onError(Throwable e) {
                Log.e(TAG, "onError: " + e.getMessage());
            }

            @Override
            public void onCompleted() {
                Log.d(TAG, "All items are emitted!");
            }
        };
    }
}

Upvotes: 0

Views: 35

Answers (1)

Blackbelt
Blackbelt

Reputation: 157437

return s.toUpperCase().equals("D");

this is always false. You might want to check with startsWith. You can read more here

Upvotes: 2

Related Questions