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); }
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 } } }
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 } }; }