예제 #1
0
        protected virtual void SetupSearchMenuItem(IMenu menu)
        {
            if (SearchItemId != 0)
            {
                using (var searchMenuItem = menu.FindItem(SearchItemId))
                    using (var searchView = MenuItemCompat.GetActionView(searchMenuItem))
                        using (var searchViewJavaObj = searchView.JavaCast <Android.Support.V7.Widget.SearchView>())
                        {
                            searchViewJavaObj.QueryHint        = AndroidHelper.GetString(Resource.String.enterSearchCriteria);
                            searchViewJavaObj.QueryTextSubmit += (s, e) =>
                            {
                                _searchTextChanged?.Invoke(e.Query);
                                e.Handled = true;
                            };

                            var onSearchCollapsedListener = new OnActionExpandListener();
                            onSearchCollapsedListener.MenuItemCollaspe += (sender, e) =>
                            {
                                _searchSearchviewCollapsed?.Invoke();
                                e.Handled = true;
                            };

                            MenuItemCompat.SetOnActionExpandListener(searchMenuItem, onSearchCollapsedListener);
                        }
            }
        }
예제 #2
0
        protected virtual void SetupFilterMenuItem(IMenu menu)
        {
            if (FilterDataItemId != 0)
            {
                using (var filterMenuItem = menu.FindItem(FilterDataItemId))
                    using (var filterView = MenuItemCompat.GetActionView(filterMenuItem))
                        using (var filterViewJavaObj = filterView.JavaCast <Android.Support.V7.Widget.SearchView>())
                        {
                            filterViewJavaObj.QueryHint        = AndroidHelper.GetString(Resource.String.enterFilterCriteria);
                            filterViewJavaObj.QueryTextChange += (s, e) =>
                            {
                                _filterDataTextChanged?.Invoke(e.NewText);
                                e.Handled = true;
                            };

                            filterViewJavaObj.QueryTextSubmit += (s, e) =>
                            {
                                _filterDataTextChanged?.Invoke(e.Query);
                                e.Handled = true;
                            };

                            var onCollapseListener = new OnActionExpandListener();
                            onCollapseListener.MenuItemCollaspe += (sender, e) =>
                            {
                                _filterSearchviewCollapsed?.Invoke();
                                e.Handled = true;
                            };

                            MenuItemCompat.SetOnActionExpandListener(filterMenuItem, onCollapseListener);

                            if (!string.IsNullOrWhiteSpace(CurrentFilter))
                            {
                                var previousFilter = CurrentFilter;

                                //For some reason these to invoke QueryTextChanged
                                // the secodn time it is called, the CurrentFilter is set to empty
                                filterMenuItem.ExpandActionView();

                                CurrentFilter = previousFilter;
                                filterViewJavaObj.SetQuery(CurrentFilter, false);

                                CurrentFilter = previousFilter;
                            }
                        }
            }
        }
예제 #3
0
 //@TargetApi(14)
 public IMenuItem setOnActionExpandListener(OnActionExpandListener onActionExpandListener)
 {
     // Noop
     return this;
 }