Я пытаюсь изучить некоторые RxJava и RxAndroid, и я думаю, что проблема, с которой я столкнулся, может быть легко решена с помощью такого инструмента. Вот проблема: у нас может быть 'N' количество просмотров в Activity, и каждый из них используется для выполнения некоторого условия. Когда пользователь нажимает «Сохранить», мы хотим проверить, соблюдены ли все условия во всех представлениях, и если нет, попросить пользователя подтвердить для каждого из них отдельно. Итак, вот пример того, как я справился бы с этой проблемой без 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, поэтому оно больше не будет всплывать для этого представления. И, конечно же, после того, как «проверка» вернет true, будет запущена функция «Сохранить ()».
Это действительно грубая демонстрация моего реального решения, поскольку я хотел сделать его как можно более простым, поэтому просто прокомментируйте, если вы знаете, как что-то подобное можно сделать с помощью RxJava. Я уже использую библиотеку для некоторых асинхронных вещей (разговор с устройствами, подключенными к usb), поэтому я кое-что знаю, но никогда не знал, как связывать такие вызовы.
Любая помощь приветствуется.
Изменить
добавлен метод слушателя, чтобы мы могли видеть, что функция «validate()» вызывается снова