@Override public View onCreateView( LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View layout = inflater.inflate(R.layout.fragment_form_validation_comb_latest, container, false); unbinder = ButterKnife.bind(this, layout); _emailChangeObservable = RxTextView.textChanges(_email).skip(1).toFlowable(BackpressureStrategy.LATEST); _passwordChangeObservable = RxTextView.textChanges(_password).skip(1).toFlowable(BackpressureStrategy.LATEST); _numberChangeObservable = RxTextView.textChanges(_number).skip(1).toFlowable(BackpressureStrategy.LATEST); _combineLatestEvents(); return layout; }
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); _setupLogger(); _disposable = RxTextView.textChangeEvents(_inputSearchText) .debounce(400, TimeUnit.MILLISECONDS) // default Scheduler is Computation .filter(changes -> isNotNullOrEmpty(changes.text().toString())) .observeOn(AndroidSchedulers.mainThread()) .subscribeWith(_getSearchObserver()); }
private void setOnQuenyTextChangeListener() { RxSearchView.queryTextChangeEvents(searchView) .throttleLast(100, TimeUnit.MILLISECONDS) .debounce(300, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .as(this.bindAutoDispose()) .subscribe(searchViewQueryTextEvent -> { final String keyWord = searchViewQueryTextEvent.queryText() + ""; Log.d(TAG, "accept: " + keyWord); if (searchViewQueryTextEvent.isSubmitted()) { searchView.clearFocus(); initSearchLayout(keyWord);
RxView.focusChanges(mEtUsername) .compose(bindToLifecycle()) .subscribe(aBoolean -> { if (aBoolean) { }); RxView.focusChanges(mEtPassword) .compose(bindToLifecycle()) .subscribe(aBoolean -> { if (aBoolean) { RxTextView.textChangeEvents(mEtUsername) .compose(bindToLifecycle()) .subscribe(textViewTextChangeEvent -> { mEtPassword.setText(""); if (textViewTextChangeEvent.count() > 0) { visible(mDeleteUsername); } else { RxView.clicks(mBtnLogin) .throttleFirst(5, TimeUnit.SECONDS)//5秒内取第一个事件 防止重复点击发送事件 .compose(bindToLifecycle()) RxView.clicks(mDeleteUsername) .throttleFirst(5, TimeUnit.SECONDS)//5秒内取第一个事件 防止重复 .compose(bindToLifecycle())
@Override public void subscribeEditorForPreview(EditText editText) { mEditorEditTextDisposable = RxTextView.textChanges(editText) .debounce(300, TimeUnit.MILLISECONDS) .map(text -> mMarkdownParser.getParsedHtml(text.toString())) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(html -> mNoteEditorActivity.loadPreview(html)); }
private Observable<String> getObservableForEditext(EditText editText) { return RxTextView.textChanges(editText).filter(new Predicate<CharSequence>() { @Override public boolean test(@NonNull CharSequence charSequence) throws Exception { return charSequence.length() > 3; } }).debounce(300, TimeUnit.MILLISECONDS).map(new Function<CharSequence, String>() { @Override public String apply(@NonNull CharSequence charSequence) throws Exception { return charSequence.toString(); } }); }
RxTextView.textChangeEvents(mEtRxJava) .debounce(INTERVAL, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<TextViewTextChangeEvent>() {
compositeDisposable.add(RxAdapterView.itemSelections(filterSpinner) .skip(2) .map(integer -> new FilterEvent(integer == 1)) .subscribe(
RxTextView.textChanges(binding.msgEt) .debounce(200, TimeUnit.MILLISECONDS) .subscribe(new Observer<CharSequence>() { @Override
Observable<String> obs = RxTextView.textChanges(mSearchEditText).filter(new Predicate<CharSequence>() { @Override public boolean test(@NonNull CharSequence charSequence) throws Exception {
Observable<CharSequence> nameObservable = RxTextView.textChanges(name).skip(1); Observable<CharSequence> ageObservable = RxTextView.textChanges(age).skip(1); Observable<CharSequence> jobObservable = RxTextView.textChanges(job).skip(1);
@SuppressLint("CheckResult") private void initSearchView() { RxSearchView.queryTextChangeEvents(mSearchView) .throttleLast(100, TimeUnit.MILLISECONDS) .debounce(300, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(searchViewQueryTextEvent -> { String keyWord = searchViewQueryTextEvent.queryText().toString(); if (searchViewQueryTextEvent.isSubmitted()) { mSearchView.clearFocus();
RxTextView.textChanges(ed) .debounce(1, TimeUnit.SECONDS).skip(1) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<CharSequence>() {
RxTextView.textChanges(searchView.getRootView().findViewById(R.id.searchTextView)) .filter(charSequence -> isNotNullOrEmpty(charSequence.toString())) .debounce(1000, TimeUnit.MILLISECONDS).map(CharSequence::toString) .subscribeOn(Schedulers.io())