2016-09-26 19 views
4

私のUIには、RadioGroupには3 RadioButtonsと "普通" Buttonがあります。RxJavaの現在の値を取得Observable

ユーザーがButtonをクリックすると、選択したRadioButtonを読んで、何かをしたいと思っています。

RxView.clicks(button) 
     .flatMap(x -> RxRadioGroup.checkedChanges(radioGroup_timer)) 
     .map(view -> { 
      switch (view) { 
       case R.id.radioButton_10sec_timer: 
        return 10; 
       case R.id.radioButton_20sec_timer: 
        return 20; 
       default: 
        return DEFAULT_TIMER; 
      } 
     }) 
    .subscribe(duration -> Timber.i("duration: %,d",duration)); 

それはこれまでのところが、今のユーザーは、私は新しいログメッセージを取得する他のRadioButtonを選択するたびに動作します。

変更を購読せずに現在選択されているRadioButtonを読み取る方法はありますか? withLatestFromがcheckedChangesストリームからのみLATEST要素を取り、flatMapます。この

RxView.clicks(button) 
     .withLatestFrom(RxRadioGroup.checkedChanges(radioGroup_timer), (click, checked) -> checked) 
     .map(...) 

ようsmthing行う

答えて

3

は、新しい観測を作成し、このストリーム

+0

からすべての項目を放射することフォーム検証のためにラジオグループ内のすべてのイベントに登録するにはどうすればよいですか? –

関連する問題