Я пишу некоторый код на Xamarin, но я предполагаю, что моя проблема будет похожа на Java.
В моей основной деятельности у меня есть несколько блесен, и я хочу вызвать какое-то действие при смене элемента.
Предположим, что счетчик содержит список имен, а действие, которое нужно выполнить, когда выбран элемент, - это тост, показывающий имя, которое я выбрал в счетчике.
Когда я впервые запускаю приложение, счетчик заполняется некоторыми именами, и я помещаю следующую строку, чтобы вызвать тост при выборе элемента
spinNames.ItemSelected += SpinNames_ItemSelected;
и метод
private void SpinNams_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
// toast message with the selected name
}
проблема в том, что это событие вызывается несколько раз, потому что фактически всегда есть выбранный элемент.
Как я могу убедиться, что событие запускается только в первый раз (когда запускается действие, поэтому счетчик заполняется и отображается в первый раз), и только тогда, когда в счетчике выбран новый элемент.
Так что событие запускается только один раз, когда я на самом деле делаю новый выбор в блесне.
Я подумал, что мог бы использовать некоторую глобальную переменную для хранения текущего выбора, чтобы запуск события мог быть обусловлен элементом, выбранным в счетчике, чтобы отличаться от того, что хранит глобальная переменная.
Но кажется слишком сложным, поскольку у меня может быть много новых глобальных переменных для обработки, когда у меня есть несколько счетчиков. Любой разумный способ достичь моей цели?