如何使用 RxJava 绑定单选按钮

How to bind Radio Buttons using RxJava

我正在遵循 Qiitanium 应用程序的代码(请参阅 link 中突出显示的行),但我无法弄清楚如何绑定 RadioButtons

假设我有一个 ID 为 R.id.rgMyButtons 的 RadioGroup,它包含 3 个 RadioButtons "Dead"、"Alive"、"Body Missing",ID 为 R.id.rbDead、R.id.rbAlive, R.id.rbMissing

我将 RadioGroup 字段设置为

Rx<RadioGroup> radioGroup;

我在 onViewCreated 中将视图设置为

rdGroup = RxView.findById(this, R.id.rgMyButtons);
rdGroup.get().setOnCheckedChangeListener(mOnPersonStateUpdateListener);

在 onBind 中,我想将 RadioGroup 绑定到模型数据,以便 returns 的值直接映射到该组中正确的 RadioButton。我正在寻找类似

的内容
rdGroup.bind(person.state(), RxActions.someAction()),

使其绑定到RadioGroup并自动设置正确的值。

person_state() 实际上 returns 2 代表死亡,3 代表活着,4 代表失踪,我希望它检查到 RadioGroup 中的正确字段。我怎样才能在 RxAndroid 中实现这个?

我能够自己解决这个问题。以下是可能遇到相同问题的任何人的答案....

我在class中写了一个函数as

protected RxAction<RadioGroup, String> setRadioButton() {
    return new RxAction<RadioGroup, String>() {
        @Override
        public void call(final RadioGroup radioGroup, final String selection) {
           RadioButton rb;
           switch(selection)
           {
               case "2":
                   rb = (RadioButton)findViewById(R.id.rbDead);
                   rb.setChecked(true);
                   break;

               case "3":
                   rb = (RadioButton)findViewById(R.id.rbAlive);
                   rb.setChecked(true);
                   break;

               case "4":
                   rb = (RadioButton)findViewById(R.id.rbMissing);
                   rb.setChecked(true);
                   break;

           }
        }
    };
}

在我使用的 onBind 中

rdGroup.bind(person.state(), setRadioButton()),