private void spinner_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e) { Spinner spinner = (Spinner)sender; SubsystemHolder boxer = (SubsystemHolder)spinner.Tag; string output = string.Format("Setting {0} ({1}) to {2}", boxer.SubsystemFriendlyName, boxer.SubsystemName, spinner.GetItemAtPosition(e.Position)); Console.WriteLine(output); }
public override View GetView(int position, View convertView, ViewGroup parent) { View view = convertView; // re-use an existing view, if one is available ViewHolder holder = null; SwitchViewHolder switchHolder = null; TextEditViewHolder editHolder = null; SpinnerViewHolder spinnerHolder = null; ListItemType @type = (ListItemType)GetItemViewType(position); if (view == null) // otherwise create a new one { switch (@type) { case ListItemType.Switch: view = context.LayoutInflater.Inflate(Resource.Layout.SettingsToggleListItem, null); holder = switchHolder = new SwitchViewHolder(); switchHolder.ToggleButton = view.FindViewById <ToggleButton> (Resource.Id.toggleButton); break; case ListItemType.TextEdit: view = context.LayoutInflater.Inflate(Resource.Layout.SettingsTextEditListItem, null); holder = editHolder = new TextEditViewHolder(); editHolder.EditText = view.FindViewById <EditText> (Resource.Id.editText); editHolder.EditText.TextChanged += textChangedEventHandler; editHolder.EditText.FocusChange += focusChangedEventHandler; break; case ListItemType.Spinner: view = context.LayoutInflater.Inflate(Resource.Layout.SettingsSpinnerListItem, null); holder = spinnerHolder = new SpinnerViewHolder(); spinnerHolder.Spinner = view.FindViewById <Spinner> (Resource.Id.valueSpinner); var adapter = ArrayAdapter.CreateFromResource(context, Resource.Array.log_levels_array, Android.Resource.Layout.SimpleSpinnerItem); adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); spinnerHolder.Spinner.Adapter = adapter; spinnerHolder.Spinner.ItemSelected += spinnerItemSelectedEventHandler; break; default: throw new NotImplementedException(); } holder.LabelTextView = view.FindViewById <TextView> (Resource.Id.labelTextView); view.Tag = holder; } else { holder = (ViewHolder)view.Tag; switch (@type) { case ListItemType.Switch: holder = switchHolder = (SwitchViewHolder)view.Tag; break; case ListItemType.TextEdit: holder = editHolder = (TextEditViewHolder)view.Tag; break; case ListItemType.Spinner: holder = spinnerHolder = (SpinnerViewHolder)view.Tag; break; default: throw new NotImplementedException(); } } switch ((Setting)position) { case Setting.StandardOutLoggerSwitch: holder.LabelTextView.Text = context.Resources.GetString(Resource.String.standard_out_logger); break; case Setting.OutgoingTelnetLoggerSwitch: holder.LabelTextView.Text = context.Resources.GetString(Resource.String.outgoing_telnet_logger); break; case Setting.OutgoingTelnetLoggerServer: holder.LabelTextView.Text = context.Resources.GetString(Resource.String.outgoing_telnet_logger_server_prompt); editHolder.EditText.Text = "logger.foo.com:5900"; break; case Setting.TelnetLoggerSwitch: holder.LabelTextView.Text = context.Resources.GetString(Resource.String.telnet_logger); break; case Setting.TelnetLoggerPort: holder.LabelTextView.Text = context.Resources.GetString(Resource.String.telnet_logger_port_prompt); editHolder.EditText.Text = "59999"; break; default: SubsystemHolder boxer = (SubsystemHolder)this [position]; holder.LabelTextView.Text = boxer.SubsystemFriendlyName; spinnerHolder.Spinner.Prompt = boxer.SubsystemFriendlyName; spinnerHolder.Spinner.Tag = boxer; spinnerHolder.Spinner.SetSelection(position % (spinnerHolder.Spinner.Adapter.Count)); break; } return(view); }