Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. package com.tehmou.book.chapter7coffeebreak;
  2.  
  3. import android.support.v4.util.Pair;
  4. import android.support.v7.app.AlertDialog;
  5. import android.support.v7.app.AppCompatActivity;
  6. import android.os.Bundle;
  7. import android.widget.TextView;
  8.  
  9. import com.jakewharton.rxbinding.view.RxView;
  10. import com.jakewharton.rxbinding.widget.RxTextView;
  11.  
  12. import rx.Observable;
  13. import rx.android.schedulers.AndroidSchedulers;
  14.  
  15. public class MainActivity extends AppCompatActivity {
  16.  
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.activity_main);
  21.  
  22. final Observable<String> titleObservable =
  23. RxTextView
  24. .textChanges((TextView) findViewById(R.id.title_edit_text))
  25. .map(Object::toString);
  26.  
  27. final Observable<String> messageObservable =
  28. RxTextView
  29. .textChanges((TextView) findViewById(R.id.message_edit_text))
  30. .map(Object::toString);
  31.  
  32. final Observable<Void> clickEvents =
  33. RxView.clicks(findViewById(R.id.action_button));
  34.  
  35. final Observable<Pair<String, String>> dialogContentsObservable =
  36. Observable.combineLatest(titleObservable, messageObservable, Pair::new);
  37.  
  38.  
  39. final Observable<Pair<String, String>> showDialogEventObservable =
  40. clickEvents.withLatestFrom(dialogContentsObservable,
  41. (ignore, dialogContents) -> dialogContents);
  42.  
  43. showDialogEventObservable
  44. .observeOn(AndroidSchedulers.mainThread())
  45. .subscribe(dialogContents ->
  46. new AlertDialog.Builder(this)
  47. .setTitle(dialogContents.first)
  48. .setMessage(dialogContents.second)
  49. .show()
  50. );
  51.  
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement