13

我是新的 android 和 rxjava。我经历过很多例子,我们用 rxbindings 监听事件。像这样

 RxView.clicks(b).subscribe(new Action1<Void>() {
                    @Override
                    public void call(Void aVoid) {
                        // do some work here
                    }
                });

或者

RxTextView.textChanges(name)
            .subscribe(new Action1<String>() {
                @Override
                public void call(String value) {
                    // do some work with the updated text
                }
            });

现在我正在尝试为 android spinner 做同样的事情。我想听听 itemselected 事件。谁能帮忙?

4

1 回答 1

34

Spinner 中的项目来自与此视图关联的适配器。

请参阅微调器指南。

要为微调器定义选择事件处理程序,请实现 AdapterView.OnItemSelectedListener 接口和相应的 onItemSelected() 回调方法。例如,下面是 Activity 中接口的实现:

文档:https ://developer.android.com/guide/topics/ui/controls/spinner.html

RxBinding 文档: https ://github.com/JakeWharton/RxBinding/blob/31e02dcaca426e2ce440093b501e1a28fe1461f6/rxbinding/src/androidTest/java/com/jakewharton/rxbinding2/widget/RxAdapterViewTest.java

在 GitHub-Repository 中搜索 Spinner 后,我找到了 Spinner 的示例:

RxAdapterView.itemSelections(spinner)
    .subscribeOn(AndroidSchedulers.mainThread())
    .subscribe(integer -> {
        Log.v("spinner", integer.toString());
    });
于 2017-04-17T08:34:23.220 回答