2015-05-12 7 views
0

Я после кода Qiitanium приложения (см выделенных строк в ссылке) и у меня есть проблемы, выяснить, как я могу связать RadiobuttonsКак связать радио кнопки с помощью RxJava

Скажет, у меня есть RadioGroup с R .id.rgMyButtons как Id и содержит 3 RadioButtons «Dead», «Alive», «Body Missing» с идентификаторами: 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 к данным модели, чтобы значение, возвращающее карты непосредственно к правильному RadioButton в этой группе. Я искал что-то вроде

rdGroup.bind(person.state(), RxActions.someAction()), 

Так, чтобы он был связан с RadioGroup и автоматически устанавливает правильное значение.

Person_state() фактически возвращает 2 для Dead, 3 для Alive и 4 для Missing, и я хочу, чтобы это проверило правильное поле в RadioGroup. Как я могу добиться этого в RxAndroid?

ответ

1

Я смог решить это самостоятельно. Вот ответ для тех, кто может прийти через тот же вопрос ....

Я написал функцию в классе, как

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()), 
Смежные вопросы