Итак, есть 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)
Тебе нужно присвоить каждой кнопке Id и в конструкции switch() искать view-элемент по id пример:
switch(sendBtn.getId()){
case R.id.btn1:
...
case R.id.btn2:
...}
Если это не подходит для Вашего языка программирования, я надеюсь, что мой ответ подскажет вам путь решения данной проблемы. Всего хорошего)
А зачем все эти кэйсы? Можно же создать для каждой кнопки отдельный ивент. Вот так:
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 += SwitchActivityByHm;
Button BtnSrch = (Button)FindViewById(Resource.Id.Search);
BtnSrch.Click += SwitchActivityBySrch;
Button BtnLstOfPh = (Button)FindViewById(Resource.Id.ListOfPhotos);
BtnLstOfPh.Click += SwitchActivityByLstOfPh;
Button BtnGlr = (Button)FindViewById(Resource.Id.Glory);
BtnGlr.Click += SwitchActivityByGlr;
Button BtnMyAcc = (Button)FindViewById(Resource.Id.MyAcc);
BtnMyAcc.Click += SwitchActivityByMyAcc;
}
public void SwitchActivityByHm(object sender, EventArgs e)
{
Intent toMain = new Intent(this, typeof(MainScreenActivity));
StartActivity(toMain);
}
public void SwitchActivityBySrch(object sender, EventArgs e)
{
Intent toSearch = new Intent(this, typeof(SearchActivity));
StartActivity(toSearch);
}
public void SwitchActivityByLstOfPh(object sender, EventArgs e)
{
Intent toPhoto = new Intent(this, typeof(ListOfPhotoActivity));
StartActivity(toPhoto);
}
public void SwitchActivityByGlr(object sender, EventArgs e)
{
Intent toGlory = new Intent(this, typeof(GloryActivity));
StartActivity(toGlory);
}
public void SwitchActivityByMyAcc(object sender, EventArgs e)
{
Intent toUser = new Intent(this, typeof(UserActivity));
StartActivity(toUser);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Столкнулся с необходимостью выделения фрагмента текста в TextBlock, а именно определённых ключевых слов по которым были отфильтрованы элементы...
Почему CancellationToken реализован как структура? Ведь структура является типом значения, как тогда реализован данный механизм?
Буду излагать суть проблемы максимально краткоИмеется 2 модели: