#android #c_sharp #button #xamarin #click
Итак, есть 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 цифры и пишет что требуется постоянное значение. Как исправить?
Ответы
Ответ 1
Чтобы вы ни писали в xml, в свойство Tag любое значение будет паковаться (Tag - всё же object). При запросе свойства вы будете всегда получать object, поэтому нужно провести распаковку: switch ((int) sendBtn.Tag)Ответ 2
Тебе нужно присвоить каждой кнопке Id и в конструкции switch() искать view-элемент по id пример: switch(sendBtn.getId()){ case R.id.btn1: ... case R.id.btn2: ...} Если это не подходит для Вашего языка программирования, я надеюсь, что мой ответ подскажет вам путь решения данной проблемы. Всего хорошего)Ответ 3
XAML `
Комментариев нет:
Отправить комментарий