void SetupSearchInput(Android.Support.V7.Widget.SearchView searchView) { var searchManager = Activity.GetSystemService(Context.SearchService).JavaCast <SearchManager> (); searchView.SetIconifiedByDefault(false); var searchInfo = searchManager.GetSearchableInfo(Activity.ComponentName); searchView.SetSearchableInfo(searchInfo); }
public override bool OnCreateOptionsMenu(IMenu menu) { MenuInflater inflater = MenuInflater; inflater.Inflate(Resource.Menu.group, menu); var searchManager = (SearchManager)GetSystemService(Context.SearchService); IMenuItem searchItem = menu.FindItem(Resource.Id.menu_search); var view = MenuItemCompat.GetActionView(searchItem); searchView = view.JavaCast <Android.Support.V7.Widget.SearchView>(); searchView.SetSearchableInfo(searchManager.GetSearchableInfo(ComponentName)); searchView.SetOnSuggestionListener(new SuggestionListener(searchView.SuggestionsAdapter, this, searchItem)); searchView.SetOnQueryTextListener(new OnQueryTextListener(this)); if (_prefs.GetBoolean("ActivateSearchView", false) && AppTask.CanActivateSearchViewOnStart) { //need to use PostDelayed, otherwise the menu_lock item completely disappears searchView.PostDelayed(() => { searchView.Iconified = false; AppTask.CanActivateSearchViewOnStart = false; }, 500); } ActionBar.LayoutParams lparams = new ActionBar.LayoutParams(ActionBar.LayoutParams.MatchParent, ActionBar.LayoutParams.MatchParent); searchView.LayoutParameters = lparams; _syncItem = menu.FindItem(Resource.Id.menu_sync); _offlineItem = menu.FindItem(Resource.Id.menu_work_offline); _onlineItem = menu.FindItem(Resource.Id.menu_work_online); UpdateOfflineModeMenu(); return(base.OnCreateOptionsMenu(menu)); }
public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater) { inflater.Inflate(Resource.Menu.toolbar_menu, menu); IMenuItem searchItem = menu.FindItem(Resource.Id.toolbarSearch); SearchManager searchManager = (SearchManager)Activity.GetSystemService(Context.SearchService); v7SearchView searchView = (v7SearchView)menu.FindItem(Resource.Id.toolbarSearch).ActionView; searchView.SetSearchableInfo(searchManager.GetSearchableInfo(Activity.ComponentName)); searchView.QueryTextSubmit += (sender, e) => { Log.Info(tag, $"searching for {e.NewText}"); floorPagerAdapter.Filter.InvokeFilter(e.NewText); e.Handled = true; }; searchItem.SetOnActionExpandListener(new SearchViewExpandListener(floorPagerAdapter)); base.OnCreateOptionsMenu(menu, inflater); }