Spinner OnItemSelectedListener - PullRequest
       0

Spinner OnItemSelectedListener

6 голосов
/ 12 января 2012

Я не могу найти пример того, как сделать это в моно.

Любая помощь?

Редактировать: Добавлен код

foreach (equip item in list)
   {
        tr = new TableRow(this);

        sp = new Spinner(this);
        sp.LayoutParameters = lp2;
        sp.Adapter = adapter;                                  
        sp.ItemSelected += new EventHandler<ItemEventArgs>(spinner_ItemSelected());
        sp.SetSelection(Convert.ToInt32(item.status));
        tr.AddView(sp);
   }

private void spinner_ItemSelected(object sender, ItemEventArgs e)
    {
        Spinner spinner = (Spinner)sender;

        string toast = string.Format ("You selected {0}", spinner.GetItemAtPosition (e.Position));
        Toast.MakeText (this, toast, ToastLength.Long).Show ();
    }

Ответы [ 2 ]

10 голосов
/ 12 января 2012

В Mono для Android многие интерфейсы слушателей были переведены на события C #, включая этот. В этом случае вы можете подключиться к событию ItemSelected вместо того, чтобы создавать слушателя. У Xamarin есть полный пример использования прядильщика здесь .

Edit:

На основании вашего запроса о различении фактического изменения значения счетчика вы можете сделать что-то вроде:

int initialSpinnerPosition = spinner.SelectedItemPosition;
spinner.ItemSelected += (sender, args) =>
                        {
                            if (args.Position != initialSpinnerPosition)
                            {
                                // do stuff
                            }
                        };
2 голосов
/ 20 декабря 2013

вы можете использовать тег как

bool userClick = false;

spinner.ItemSelected += (sender, e) => {
            if(userClick) {
                --- do stuff
            }
            userClick = true;
        };

При создании / обновлении адаптера счетчиков на основе данных SQL

userClick = false;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...