Следующий код взят из части C # моего приложения Android Mono.В конечном итоге это будет GUI для симулятора мультиметра, но сейчас он просто отображает текст.Это довольно просто:
-Нажмите одну из кнопок, чтобы перейти к этому метру (вольтметр, амперметр, омметр) -Нажмите кнопку «повторное сканирование» и TextView скажет вам, сколько раз вы нажали, чтокнопка.-Нажмите одну из других кнопок измерителя или кнопку домой, чтобы переключить представления
Это работает безупречно.К сожалению, как только я переключаю взгляды, кнопки перестают работать.Ниже приведен код кнопки «Ом» и кнопки «Усилитель».Кнопка «Ом» является «полной» кнопкой, которая отображает все остальные экраны.В целях тестирования я собирался на экран усилителя, но когда я туда захожу, кнопка повторного сканирования ничего не делает.Ни одна из кнопок ничего не делает.
Я достаточно уверен, что проблема заключается в том, что я использую команды делегат , но ни одно из моих исследований не привело меня к каким-либопуть к решению.
Я могу предоставить больше основного кода и кода XML, если это необходимо.
ampButton.Click += delegate
{
SetContentView(Resource.Layout.AmpScreen);
Button ampButtonData = FindViewById<Button>(Resource.Id.CurrentButtonamp);
TextView ampData = FindViewById<TextView>(Resource.Id.ampdata);
ampButtonData.Click += delegate
{
ampData.Text = string.Format("{0} clicks!", count2++);
};
Button amp2volt = FindViewById<Button>(Resource.Id.Amp2VoltButton);
Button amp2ohm = FindViewById<Button>(Resource.Id.Amp2OhmButton);
Button amp2home = FindViewById<Button>(Resource.Id.Amp2HomeButton);
};
ohmButton.Click += delegate
{
SetContentView(Resource.Layout.OhmScreen);
Button ohmButtonData = FindViewById<Button>(Resource.Id.CurrentButtonohm);
TextView ohmData = FindViewById<TextView>(Resource.Id.ohmdata);
ohmButtonData.Click += delegate
{
ohmData.Text = string.Format("{0} clicks!", count3++);
};
Button ohm2amp = FindViewById<Button>(Resource.Id.Ohm2AmpButton);
Button ohm2volt = FindViewById<Button>(Resource.Id.Ohm2VoltButton);
Button ohm2home = FindViewById<Button>(Resource.Id.Ohm2HomeButton);
ohm2amp.Click += delegate
{
SetContentView(Resource.Layout.AmpScreen);
};
ohm2volt.Click += delegate
{
SetContentView(Resource.Layout.VoltScreen);
};
ohm2home.Click += delegate
{
SetContentView(Resource.Layout.Main);
};
};