Xamarin спиннер запускает itemSelected событие несколько раз - PullRequest
0 голосов
/ 30 июня 2018

Я пишу некоторый код на Xamarin, но я предполагаю, что моя проблема будет похожа на Java. В моей основной деятельности у меня есть несколько блесен, и я хочу вызвать какое-то действие при смене элемента.

Предположим, что счетчик содержит список имен, а действие, которое нужно выполнить, когда выбран элемент, - это тост, показывающий имя, которое я выбрал в счетчике.

Когда я впервые запускаю приложение, счетчик заполняется некоторыми именами, и я помещаю следующую строку, чтобы вызвать тост при выборе элемента

spinNames.ItemSelected += SpinNames_ItemSelected;

и метод

private void SpinNams_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
   // toast message with the selected name
}

проблема в том, что это событие вызывается несколько раз, потому что фактически всегда есть выбранный элемент. Как я могу убедиться, что событие запускается только в первый раз (когда запускается действие, поэтому счетчик заполняется и отображается в первый раз), и только тогда, когда в счетчике выбран новый элемент. Так что событие запускается только один раз, когда я на самом деле делаю новый выбор в блесне. Я подумал, что мог бы использовать некоторую глобальную переменную для хранения текущего выбора, чтобы запуск события мог быть обусловлен элементом, выбранным в счетчике, чтобы отличаться от того, что хранит глобальная переменная. Но кажется слишком сложным, поскольку у меня может быть много новых глобальных переменных для обработки, когда у меня есть несколько счетчиков. Любой разумный способ достичь моей цели?

...