gpt4 book ai didi

android - UI 线程上的链式 RxJava 调用

转载 作者:行者123 更新时间:2023-11-29 17:23:03 25 4
gpt4 key购买 nike

我正在尝试学习一些 RxJava 和 RxAndroid,我认为使用此类工具可以轻松解决我遇到的问题。这是问题所在:我们可以在一个 Activity 中有“N”个 View ,每个 View 都用于满足某些条件。当用户按下“保存”时,我们要检查所有 View 是否满足所有条件,如果不满足,请用户分别确认每个 View 。所以这里是我将如何处理这个问题的例子没有 RxJava:

private void validation(List<CustomView> views)
{
for (CustomView view : views)
{
if (view.metCondition() == false)
{
showConfirmationDialog(view);
return false;
}
}

return true;
}


private void showConfirmationDialog(CustomView view)
{
ConfirmationDialog dialog = new ConfirmationDialog(this, view);

dialog.show();
}

private void dialogResult(CustomView view)
{
view.setCondition(true);

validation(mViews);
}

很明显,我会使用某种类型的监听器来确认结果,并且在确认条件(使用 OK 或 Cancel)后,“view.metCondition()”将设置为 true,因此它不会再次针对该 View 弹出。当然,在“验证”返回 true 之后,它会运行“Save()”函数。

这真的是我真正解决方案的粗鲁展示,因为我想让它尽可能简单,所以如果你知道如何用 RxJava 完成这样的事情,请发表评论。我已经在使用这个库来处理一些异步的东西(与 USB 连接的设备交谈)所以我知道一些事情,但从来不知道如何像这样链接调用。

非常感谢任何帮助。

编辑

添加了监听器方法,所以我们可以看到“validate()”函数再次被调用

最佳答案

对于链式验证,您真的应该查看combineLatest() operator .首先,您为每个 View 创建 Observable,然后使用该运算符。 RxBinding是 Android View 的出色扩展。

参见 this例子。这是一个很好的验证。

关于android - UI 线程上的链式 RxJava 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35797526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com