Есть ли возможность назначить значение для Android Button в Xamarin?

Я только начал изучать Xamarin Android. У меня есть несколько кнопок с одним и тем же обработчиком событий кликов.

private Button flipper1Btn; private Button flipper2Btn; private ViewFlipper flipper; private TextView text; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); setControls(); setEvents(); } private void setControls() { flipper = FindViewById<ViewFlipper>(Resource.Id.viewFlipper1); flipper1Btn = FindViewById<Button>(Resource.Id.button1); flipper2Btn = FindViewById<Button>(Resource.Id.button2); text = FindViewById<TextView>(Resource.Id.textView1); } private void setEvents() { flipper1Btn.Click += FlipperBtn_Click; flipper2Btn.Click += FlipperBtn_Click; } #region Events private void FlipperBtn_Click(object sender, EventArgs e) { Button sendBtn = (Button)sender; } #endregion 

В методе «FlipperBtn_Click» я хотел бы узнать, какая кнопка была нажата и получить значение от этой кнопки. Я хотел бы достичь чего-то вроде HTML5, назначив div как можно больше атрибутов. Я думал об андроиде «Tag» и пытался сделать что-то вроде этого:

 private void setControls() { flipper = FindViewById<ViewFlipper>(Resource.Id.viewFlipper1); flipper1Btn = FindViewById<Button>(Resource.Id.button1); flipper2Btn = FindViewById<Button>(Resource.Id.button2); text = FindViewById<TextView>(Resource.Id.textView1); FlipperBtnTag tag1 = new FlipperBtnTag("tag1", "tag1Value"); FlipperBtnTag tag2 = new FlipperBtnTag("tag2", "tag2Value"); flipper1Btn.SetTag(1, tag1); flipper1Btn.SetTag(2, tag2); } 

Бад Я не понимаю, что немногие думают: а) Какова цель использования «ключа» в методе SetTag? B) Как преобразовать объект класса c # в Java.Lang.Object?

Вам не нужно устанавливать теги в кнопках, чтобы найти, что ведьма нажата.

Сделай это:

 flipper1Btn = FindViewById<Button>(Resource.Id.button1); flipper2Btn = FindViewById<Button>(Resource.Id.button2); flipper1Btn += Button_Click; flipper2Btn += Button_Click; void Button_Click(object sender, System.EventArgs e) { var button = (Button)sender; switch (button.Id) { case Resource.Id.button1: // Do Stuff here break; case Resource.Id.button2: // Do Stuff here break; default: break; } } 

В Xamarin Android у вас есть два способа установить теги. Через свойство или посредством метода .

 button.SetTag(1, "value"); 

Или:

 button.Tag = "value"; 
Intereting Posts
Как получить список выбранных элементов текста при нажатии кнопки AlertDialog Android Studio 2.1.3 – Проблема с DefaultSourceDirectorySet Android Exception: вы забыли вызвать «public void setup (LocalActivityManager activityGroup)», Как открыть или имитировать щелчок на android ListPreference, который находится внутри категории предпочтений? Исключение «Файл не найден» в задаче dexDebug сборки Android Wear CapabilityApi не может найти карманные возможности Постоянное распознавание речи Android возвращает ERROR_NO_MATCH слишком быстро API Google Maps для Android: поддержкаMapFragment vs MapFragment Egl_emulation eglsurfaceattrib не реализован с потоковым проигрывателем Как настроить уведомление Firebase Android в манифесте? Android: текст панели инструментов выглядит как черный, а не белый Какую добавку, маржу и размер следует использовать для пользовательского макета MenuItem? Android CalendarContract повторяющееся событие с датами исключения Android UI-библиотека, в которой есть Action Bars, Dashboards и т. Д. Как настроить отображение текста в андроиде, чтобы вырезать любые буквы, которые не соответствуют макету