2015-05-12 94 views
0

我正在關注的Qiitanium應用程序的代碼(見鏈接高亮行)綁定單選按鈕和我有麻煩搞清楚怎麼可以綁定單選按鈕如何使用RxJava

說我有一個R A RadioGroup中.id.rgMyButtons作爲Id,它包含3個RadioButtons「Dead」,「Alive」,「Body Missing」和Ids是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()),