示例#1
0
            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);
            }
示例#2
0
            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);
            }