Итак, есть 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)
Комментариев нет:
Отправить комментарий