RxBindings适用于Spinner吗?

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事件。有人能帮忙吗?

1个回答

34

Spinner 中的项目来自与此视图相关联的 Adapter。

请参阅 Spinner 指南。

要为 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 存储库中搜索 Spinner 后,我找到了一个 Spinner 的示例:

RxAdapterView.itemSelections(spinner)
    .subscribeOn(AndroidSchedulers.mainThread())
    .subscribe(integer -> {
        Log.v("spinner", integer.toString());
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接