Страницы

Поиск по вопросам

понедельник, 18 февраля 2019 г.

Как определить на какую кнопку нажал пользователь

Итак, есть 5 кнопок на экране, нужно определить на какую кнопку нажал пользователь и взять её тег после чего редирект на другое активити. Пытался сделать это так:
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState);
SetTheme(Android.Resource.Style.ThemeDeviceDefaultLightNoActionBar); SetContentView(Resource.Layout.MainScreen);
Button BtnHm = (Button)FindViewById(Resource.Id.Home); BtnHm.Click += SwitchActivity;
Button BtnSrch = (Button)FindViewById(Resource.Id.Search); BtnSrch.Click += SwitchActivity;
Button BtnLstOfPh = (Button)FindViewById(Resource.Id.ListOfPhotos); BtnLstOfPh.Click += SwitchActivity;
Button BtnGlr = (Button)FindViewById(Resource.Id.Glory); BtnGlr.Click += SwitchActivity;
Button BtnMyAcc = (Button)FindViewById(Resource.Id.MyAcc); BtnMyAcc.Click += SwitchActivity; }
public void SwitchActivity(object sender, EventArgs e) { Button sendBtn = (Button)sender;
switch (sendBtn.Tag) { case 1: Intent toMain = new Intent(this, typeof(MainScreenActivity)); StartActivity(toMain); break; case 2: Intent toSearch = new Intent(this, typeof(SearchActivity)); StartActivity(toSearch); break; case 3: Intent toPhoto = new Intent(this, typeof(ListOfPhotoActivity)); StartActivity(toPhoto); break; case 4: Intent toGlory = new Intent(this, typeof(GloryActivity)); StartActivity(toGlory); break; case 5: Intent toUser = new Intent(this, typeof(UserActivity)); StartActivity(toUser); break; } }
Но мне подчеркивает в case цифры и пишет что требуется постоянное значение. Как исправить?


Ответ

Чтобы вы ни писали в xml, в свойство Tag любое значение будет паковаться (Tag - всё же object). При запросе свойства вы будете всегда получать object, поэтому нужно провести распаковку:
switch ((int) sendBtn.Tag)

Комментариев нет:

Отправить комментарий