示例#1
0
        public void setAdaptadorCombo(string consulta, Android.Content.Context context, ref Android.Widget.Spinner spinner, int layout)
        {
            try
            {
                loadConnection();
                List <string> data   = new List <string>();
                ICursor       cursor = db.RawQuery(consulta, null);

                if (cursor.MoveToFirst())
                {
                    data.Add("");
                    do
                    {
                        data.Add(cursor.GetString(0));
                    } while (cursor.MoveToNext());
                }
                cursor.Close();
                db.Close();

                Android.Widget.ArrayAdapter <String> adapter;
                adapter = new Android.Widget.ArrayAdapter <String>(context, layout, data);
                //adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
                spinner.Adapter = adapter;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        protected override void OnElementChanged(ElementChangedEventArgs <Picker> e)
        {
            base.OnElementChanged(e);
            if (e.OldElement != null || Element == null)
            {
                return;
            }
            //e.NewElement.SelectedIndex = e.OldElement.SelectedIndex;
            picker = e.NewElement;
            picker.SelectedIndex = e.NewElement.SelectedIndex;
            IList <string> scaleNames = e.NewElement.Items;

            Android.Widget.Spinner spinner = new Android.Widget.Spinner(this.Context);
            spinner.ItemSelected += new EventHandler <Android.Widget.AdapterView.ItemSelectedEventArgs>(spinner_ItemSelected);
            var scaleAdapter = new Android.Widget.ArrayAdapter <string>(this.Context, Android.Resource.Layout.SimpleSpinnerItem, scaleNames);

            spinner.SetMinimumHeight((int)Element.Height);
            scaleAdapter.SetDropDownViewResource(Resource.Layout.spinner_custom_item);
            spinner.Adapter = scaleAdapter;
            spinner.SetSelection(e.NewElement.SelectedIndex);
            spinner.SetMinimumHeight((int)picker.Height);
            base.SetNativeControl(spinner);
        }
示例#3
0
        void AddSearchToToolbar(ISearchPage page, string pageTitle)
        {
            if (GetToolbar() is Toolbar toolBar && toolBar.Menu?.FindItem(Resource.Id.ActionSearch)?.ActionView?.JavaCast <SearchView>().GetType() != typeof(SearchView))
            {
                toolBar.Title = pageTitle;
                toolBar.InflateMenu(Resource.Menu.MainMenu);

                if (toolBar.Menu?.FindItem(Resource.Id.ActionSearch)?.ActionView?.JavaCast <SearchView>() is SearchView searchView)
                {
                    var adapter = new Android.Widget.ArrayAdapter <String>(Context, Resource.Layout.list_item, page.Suggestions);

                    searchView.SubmitButtonEnabled = true;
                    searchView.SetIconifiedByDefault(false);

                    searchView.QueryTextSubmit += HandleQueryTextSubmit;
                    searchView.SuggestionClick += HandleSuggestionClick;

                    searchView.QueryHint  = page.PlaceHolder;
                    searchView.ImeOptions = (int)ImeAction.Search;
                    searchView.InputType  = (int)InputTypes.TextVariationFilter;
                    searchView.MaxWidth   = int.MaxValue; //Set to full width - http://stackoverflow.com/questions/31456102/searchview-doesnt-expand-full-width

                    // https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/widget/SearchView.java
                    //var mSearchEditFrame = searchView.FindViewById(Resource.Id.search_edit_frame);
                    //var mSearchPlate = searchView.FindViewById(Resource.Id.search_plate);
                    //var mSubmitArea = searchView.FindViewById(Resource.Id.submit_area);
                    //var mSearchButton = (Android.Widget.ImageView)searchView.FindViewById(Resource.Id.search_button);
                    //var mGoButton = (Android.Widget.ImageView)searchView.FindViewById(Resource.Id.search_go_btn);
                    //var mCloseButton = (Android.Widget.ImageView)searchView.FindViewById (Resource.Id.search_close_btn);
                    //var mCollapsedIcon = (Android.Widget.ImageView)searchView.FindViewById(Resource.Id.search_mag_icon);

                    var mAutoCompleteText = (AppCompatAutoCompleteTextView)searchView.FindViewById(Resource.Id.search_src_text);
                    mAutoCompleteText.Adapter   = adapter;
                    mAutoCompleteText.Threshold = 1; //will start working from first character
                }
            }
        }
示例#4
0
        public MainPage()
        {
            Title = "FilmSearch";

            var search = new Editor { };

            var listView = new ListView
            {
                RowHeight = 40
            };
            filmsList = new ObservableCollection<FilmData>();
            filmsList.Add(new FilmData
            {
                Title = "Start typing for search",
                Touchable = false,
            });
            listView.ItemsSource = filmsList;
            search.TextChanged += async (object sender, TextChangedEventArgs e) =>
            {

                var data = new Dictionary<string, string>();
                data.Add("s", e.NewTextValue);
                JsonValue result = await Api.getInstanse().get(ApiRequest.FIND_MOVIE, data);
                JsonValue resultJson = result;
                if (resultJson.ContainsKey("Search"))
                {
                    filmsList.Clear();
                    var searchResults = resultJson["Search"];

                    var itemsCollection = new List<string>();
                    for (int i = 0; i < searchResults.Count; i++)
                    {
                        if (searchResults[i].ContainsKey("Title"))
                        {
                            filmsList.Add(new FilmData
                            {
                                Title = searchResults[i]["Title"],
                                Year = searchResults[i]["Year"],
                                Type = searchResults[i]["Type"],
                                ImdbID = searchResults[i]["imdbID"],
                            });
                        }
                    }
                }
            };

            listView.ItemTemplate = new DataTemplate(typeof(TextCell));
            listView.ItemTemplate.SetBinding(TextCell.TextProperty, "Title");

            listView.ItemTapped += async (object sender, ItemTappedEventArgs e) => {
                ((ListView)sender).SelectedItem = null;
                FilmData filmData = (FilmData)e.Item;
                if (filmData.Touchable)
                {
                    var prms = new Dictionary<string, string>();
                    prms.Add("i", filmData.ImdbID);
                    prms.Add("plot", "full");

                    /////////////////////////
                    #if __ANDROID__
                    /////////////////////////
                    var context = Xamarin.Forms.Forms.Context;

                    var dlgAlert = (new Android.App.AlertDialog.Builder(context)).Create();
                    dlgAlert.SetTitle(filmData.Title);
                    var dialogListView = new Android.Widget.ListView(context);
                    Android.Widget.ArrayAdapter dialogAdapter = new Android.Widget.ArrayAdapter(context, Android.Resource.Layout.SimpleListItem1);
                    dialogAdapter.Add("Year: " + filmData.Year);
                    dialogAdapter.Add("Type: " + filmData.Type);

                    dialogListView.Adapter = dialogAdapter;

                    dlgAlert.SetView(dialogListView);
                    dlgAlert.SetButton("Close", handllerCancelButton);
                    dlgAlert.Show();

                    JsonValue filmResult = await Api.getInstanse().get(ApiRequest.FIND_MOVIE, prms);
                    JsonValue resultJson = filmResult;
                    if (resultJson.ContainsKey("Plot"))
                    {
                        filmData.Plot = resultJson["Plot"];
                        dialogAdapter.Add(filmData.Plot);
                        dialogAdapter.NotifyDataSetChanged();

                    }
                    /////////////////////////
                    #else
                    /////////////////////////
                    JsonValue filmResult = await Api.getInstanse().get(ApiRequest.FIND_MOVIE, prms);
                    var resultJson = filmResult;
                    if (resultJson.ContainsKey("Plot")){
                            filmData.Plot = resultJson["Plot"];
                            await mainPage.DisplayAlert(filmData.Title, "Year: " + filmData.Year + "\n" + "\n" + "Type: " + filmData.Type + "\n" + "\n" + filmData.Plot, "close");
                    }
                    /////////////////////////
                    #endif
                    /////////////////////////

                }

            };

            Content = new StackLayout
            {
                VerticalOptions = LayoutOptions.FillAndExpand,
                Children = {
                        search,
                        listView
                    }
            };
        }