如何使用 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()),
我正在遵循 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()),