当前位置: 首页>>代码示例>>Java>>正文


Java RxSearchView类代码示例

本文整理汇总了Java中com.jakewharton.rxbinding.support.v7.widget.RxSearchView的典型用法代码示例。如果您正苦于以下问题:Java RxSearchView类的具体用法?Java RxSearchView怎么用?Java RxSearchView使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


RxSearchView类属于com.jakewharton.rxbinding.support.v7.widget包,在下文中一共展示了RxSearchView类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createSearchViewChangeSub

import com.jakewharton.rxbinding.support.v7.widget.RxSearchView; //导入依赖的package包/类
/**
 * Create a subscriber which observes changes to the SearchView's text and updates filters {@link #books}
 * accordingly.
 * @param searchView SearchView to observe changes of.
 */
private void createSearchViewChangeSub(SearchView searchView) {
    // Unsubscribe from an existing subscriber (if it exists) first.
    if (searchViewChangeSub != null && !searchViewChangeSub.isUnsubscribed()) searchViewChangeSub.unsubscribe();
    // Create new subscriber.
    searchViewChangeSub = RxSearchView.queryTextChanges(searchView)
                                      .skip(1)
                                      .debounce(500, TimeUnit.MILLISECONDS)
                                      .observeOn(AndroidSchedulers.mainThread())
                                      .subscribe(cs -> {
                                          // Apply filter to items and then update adapter's copy of items.
                                          getBooksList(cs.toString());
                                          //noinspection unchecked
                                          adapter.updateRealmResults(books);
                                      }, t -> {
                                          // Shouldn't happen, but we'll log it if it does.
                                          Timber.e(t, "Some error occurred due to the SearchView observer!");
                                      });
}
 
开发者ID:bkromhout,项目名称:Minerva,代码行数:24,代码来源:LibraryFragment.java

示例2: onCreateOptionsMenu

import com.jakewharton.rxbinding.support.v7.widget.RxSearchView; //导入依赖的package包/类
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.fragment_icons, menu);

    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    searchView.setQueryHint(getString(R.string.icon_search_hint));
    // reset max width to device width to make search view full width
    searchView.setMaxWidth(getResources().getDisplayMetrics().widthPixels);

    RxSearchView.queryTextChanges(searchView)
            .debounce(200, TimeUnit.MILLISECONDS)
            .skip(1)    // skip initial unnecessary change
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Action1<CharSequence>() {
                @Override
                public void call(CharSequence query) {
                    mIconsPresenter.loadIcons(query);
                }
            });
}
 
开发者ID:eo,项目名称:mdx,代码行数:22,代码来源:IconsFragment.java

示例3: theRxBeginner

import com.jakewharton.rxbinding.support.v7.widget.RxSearchView; //导入依赖的package包/类
/**
 * working solution until an error occurs. Does not handle backpressure well
 * @param searchView
 */
private void theRxBeginner(final SearchView searchView) {
    RxSearchView.queryTextChanges(searchView)
            .filter(charSequence -> !TextUtils.isEmpty(charSequence))
            .flatMap(charSequence -> {
                return mGitApiService.searchRepositoriesObservable(charSequence.toString())
                        .subscribeOn(Schedulers.io());
            })
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(response -> {
                showRepositories(response.getItems());
            }, throwable -> {
                throwable.printStackTrace();
                showEmptyErrorView(throwable.getMessage());
                Toast.makeText(RepoListActivity.this,
                        "Completed Observable 'RxSearchView.queryTextChanges(searchView)' "
                                + "with error! Should never happen",
                        Toast.LENGTH_SHORT).show();
            });
}
 
开发者ID:passsy,项目名称:android-GetReactive,代码行数:24,代码来源:RepoListActivity.java

示例4: onOptionsItemSelected

import com.jakewharton.rxbinding.support.v7.widget.RxSearchView; //导入依赖的package包/类
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_search) {
        SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
        RxSearchView.queryTextChanges(searchView)
                .map(charSequence -> charSequence == null ? null : charSequence.toString().trim())
                .throttleLast(100, TimeUnit.MILLISECONDS)
                .debounce(100, TimeUnit.MILLISECONDS)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(searchText -> selectCityFragment.cityListAdapter.getFilter().filter(searchText));
        return true;
    }
    return super.onOptionsItemSelected(item);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:16,代码来源:SelectCityActivity.java

示例5: onCreateOptionsMenu

import com.jakewharton.rxbinding.support.v7.widget.RxSearchView; //导入依赖的package包/类
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.menu_action_search));
    compositeSubscription.add(mainViewModel.searchCity(RxSearchView.queryTextChanges(searchView)));
    return true;
}
 
开发者ID:AleksanderMielczarek,项目名称:RealmRepository,代码行数:8,代码来源:MainActivity.java

示例6: theRxExpert

import com.jakewharton.rxbinding.support.v7.widget.RxSearchView; //导入依赖的package包/类
/**
 * with backpressure and error handling
 * @param searchView
 */
private void theRxExpert(final SearchView searchView) {
    RxSearchView.queryTextChanges(searchView)
            .skip(1)
            .doOnNext(charSequence -> Log.v(TAG, "searching: " + charSequence))
            .throttleLast(100, TimeUnit.MILLISECONDS)
            .debounce(200, TimeUnit.MILLISECONDS)
            .onBackpressureLatest()
            .observeOn(AndroidSchedulers.mainThread())
            .filter(charSequence -> {
                final boolean empty = TextUtils.isEmpty(charSequence);
                if (empty) {
                    Log.v(TAG, "empty view");
                    mAdapter.clear();
                }
                return !empty;
            })
            .concatMap(query -> {
                Log.v(TAG, "requesting " + query);
                // with rx.Observable
                //return searchRepositories(query)

                // with rx.Single (proof of concept)
                return searchRepositoriesSingle(query);
            })
            .doOnNext(charSequence -> Log.v(TAG, "got data"))
            .subscribe(response -> {
                showRepositories(response.getItems());
            }, throwable -> {
                throwable.printStackTrace();
                showEmptyErrorView(throwable.getMessage());
            });
}
 
开发者ID:passsy,项目名称:android-GetReactive,代码行数:37,代码来源:RepoListActivity.java

示例7: refreshTab

import com.jakewharton.rxbinding.support.v7.widget.RxSearchView; //导入依赖的package包/类
private void refreshTab(int position) {

		int type = tabTypes.get(position);
		RecyclerView view = ((RecyclerView) tabs.get(position));
		Animations.fadeFlipOut(loadingProgress, view, emptyText);

		Observable<CharSequence> debouncedQueries = RxSearchView.queryTextChanges(searchEdit)
				.compose(onUi())
				.debounce(666, TimeUnit.MILLISECONDS)
				.filter(query -> query.length() > 3)
				.compose(toIo());
		if (type == TAB_BEERS) {

			ItemClickSupport.addTo(view)
					.setOnItemClickListener((parent, pos, v) -> handleBeerResult(((BeerSearchResultAdapter) view.getAdapter()).get(pos)));
			debouncedQueries.switchMap(query -> Api.get().searchBeers(query.toString())
					.flatMap(result -> Db.getOfflineRatingForBeer(this, result.beerId)
							.singleOrDefault(null)
							.map(userRating -> result.withRating(userRating)))
					.toList()
					.compose(toUi())
					.doOnError(e -> Snackbar.show(SearchActivity.this, R.string.error_connectionfailure))
					.onErrorResumeNext(Observable.empty()))
					.compose(bindToLifecycle())
					.subscribe(results -> {

						view.setAdapter(new BeerSearchResultAdapter(results));
						if (results.isEmpty())
							Animations.fadeFlipOut(emptyText, view, loadingProgress);
						else
							Animations.fadeFlipOut(view, emptyText, loadingProgress);
					});

		} else if (type == TAB_BREWERIES) {

			ItemClickSupport.addTo(view)
					.setOnItemClickListener((parent, pos, v) -> handleBreweryResult(((BrewerySearchResultAdapter) view.getAdapter()).get(pos)));
			debouncedQueries.switchMap(query -> Api.get().searchBreweries(query.toString())
					.toList()
					.compose(toUi())
					.doOnError(e -> Snackbar.show(SearchActivity.this, R.string.error_connectionfailure))
					.onErrorResumeNext(Observable.empty())).compose(bindToLifecycle())
					.subscribe(results -> {

						view.setAdapter(new BrewerySearchResultAdapter(results));
						if (results.isEmpty())
							Animations.fadeFlipOut(emptyText, view, loadingProgress);
						else
							Animations.fadeFlipOut(view, emptyText, loadingProgress);
					});

		} else if (type == TAB_PLACES) {

			ItemClickSupport.addTo(view)
					.setOnItemClickListener((parent, pos, v) -> handlePlaceResult(((PlaceSearchResultAdapter) view.getAdapter()).get(pos)));
			debouncedQueries.switchMap(query -> Api.get().searchPlaces(query.toString())
					.toList()
					.compose(toUi())
					.doOnError(e -> Snackbar.show(SearchActivity.this, R.string.error_connectionfailure))
					.onErrorResumeNext(Observable.empty())).compose(bindToLifecycle())
					.subscribe(results -> {

						view.setAdapter(new PlaceSearchResultAdapter(results));
						if (results.isEmpty())
							Animations.fadeFlipOut(emptyText, view, loadingProgress);
						else
							Animations.fadeFlipOut(view, emptyText, loadingProgress);
					});

		}

	}
 
开发者ID:erickok,项目名称:ratebeer,代码行数:73,代码来源:SearchActivity.java

示例8: onCreateOptionsMenu

import com.jakewharton.rxbinding.support.v7.widget.RxSearchView; //导入依赖的package包/类
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_movie_list_menu, menu);

    // Associate searchable configuration with the SearchView
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);

    itemSearch = menu.findItem(R.id.menu_search);
    SearchView searchView = (SearchView) itemSearch.getActionView();
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));

    // Make the SearchView occupy the entire available width on the Toolbar
    searchView.setMaxWidth(Integer.MAX_VALUE);

    // Restore state of SearchView after configuration changes
    if (!TextUtils.isEmpty(getSearchQuery())) {
        itemSearch.expandActionView();
        searchView.setQuery(getSearchQuery(), false);
    }

    // Perform a search automatically after 1 second of no typing
    RxSearchView.queryTextChanges(searchView)
            .debounce(QUERY_TYPING_RUN_WAIT_MILLIS, TimeUnit.MILLISECONDS)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(charSequence -> {
                if (!getSearchQuery().equals(charSequence.toString())) {
                    setSearchQuery(charSequence.toString());
                    presenter.start();
                }
            });

    // Reload default list after the SearchView is closed
    RxMenuItemCompat.actionViewEvents(itemSearch)
            .subscribe(menuItemActionViewEvent -> {
                if (menuItemActionViewEvent.kind() == MenuItemActionViewEvent.Kind.COLLAPSE &&
                        !TextUtils.isEmpty(searchView.getQuery().toString())) {
                    setSearchQuery("");
                    presenter.start();
                }
            });

    return true;
}
 
开发者ID:dakshj,项目名称:TMDb_Sample,代码行数:44,代码来源:MovieListActivity.java


注:本文中的com.jakewharton.rxbinding.support.v7.widget.RxSearchView类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。