2017-04-17 5 views
4

私は新しいandroidとrxjavaです。私はrxbindingsでイベントを聞く多くの例を経験してきました。このようなスピナーのRxBindings?

RxView.clicks(b).subscribe(new Action1<Void>() { 
        @Override 
        public void call(Void aVoid) { 
         // do some work here 
        } 
       }); 

または

RxTextView.textChanges(name) 
      .subscribe(new Action1<String>() { 
       @Override 
       public void call(String value) { 
        // do some work with the updated text 
       } 
      }); 

は、今私は、Androidスピナーのために同じことをしようとしています。私はitemselectedイベントを聞きたい。誰も助けることができますか?

答えて

14

Spinnerの項目は、この ビューに関連付けられたアダプタから取得されます。

スピナーガイドを参照してください。

スピナーの選択イベントハンドラを定義するには、 AdapterView.OnItemSelectedListenerインターフェイスと対応する onItemSelected()コールバックメソッドを実装します。例えば、ここで活動中のインタフェースの 実装です:

ドキュメント:https://developer.android.com/guide/topics/ui/controls/spinner.html RxBindingドキュメント

https://github.com/JakeWharton/RxBinding/blob/31e02dcaca426e2ce440093b501e1a28fe1461f6/rxbinding/src/androidTest/java/com/jakewharton/rxbinding2/widget/RxAdapterViewTest.java

GitHubのリポジトリにスピナーを検索した後、私は例を見つけましたスピナー:

RxAdapterView.itemSelections(spinner) 
    .subscribeOn(AndroidSchedulers.mainThread()) 
    .subscribe(integer -> { 
     Log.v("spinner", integer.toString()); 
    });