Intereting Posts
Play Store, имеющий новую версию приложения, но не показывающий обновление Не удается добавить файл из внутреннего хранилища в виде вложения электронной почты Eclipse Android Debugger – Где в моем коде я вызывал исключение? Проверить введенное значение – номер или нет. Android Pusher не подключается к частным каналам Включая действия Android (и их макеты) в файлах JAR Повторная тревога неточна Google Analytics Android SDK V4 путаница Как избавиться от пробелов в gridview Как сгенерировать ключевое хеширование для facebook SDK в Mac Удалите круг из Android Google Maps API v2 без очистки карты Android 2.2: Как заставить приложение запускаться автоматически при запуске и как заставить приложение запускать другое приложение Виджет исчезает каждый раз, когда приложение обновляется на устройствах Samsung Есть ли способ взять дамп памяти при сбое приложения? Android Studio не может разрешать символы из импортированного модуля AAR

Как вызвать функцию в событии onclick в xamarin.studio

Я разработчик C #, работающий над простым калькулятором в xamarin.studio для android, мой код

btn9.Click += delegate { Buttonclick(); }; btnadd.Click += delegate { operationbuttonclick (); }; btnsub.Click += delegate { operationbuttonclick (); }; btndiv.Click += delegate { operationbuttonclick (); }; btnmul.Click += delegate { operationbuttonclick (); }; btneql.Click += delegate { txt1.Text=result.ToString(); isfirst=true; hasdecimal=true; shouldclear=true; }; btnCE.Click += delegate { txt1.Text="0"; result=0; isfirst=true; shouldclear=true; hasdecimal=false; }; 

Я получаю ошибку в buttonclick (); И operationbuttonclick (); Строка 2 и 4 вышеуказанного кода. Мои методы buttonclickmethod и operationbuttonclick

 private void Buttonclick(object sender,EventArgs e) { EditText txt2 = FindViewById<EditText> (Resource.Id.textView1); EditText txt1 = FindViewById<EditText> (Resource.Id.textView2); Button sbutton = (sender as Button); double oldno, newno,buttonno; if(shouldclear) { txt1.Text=""; oldno=0; shouldclear=false; } else { oldno=double.Parse(txt1.Text); hasdecimal = true; } buttonno=double.Parse(sbutton.Text); newno = (oldno * 10) + buttonno; if(isfirst) { num1=newno; } else { num2=newno; } txt1.Text += sbutton.Text; Calculate (symbol); } 

а также

 private void operationbuttonclick(object sender,EventArgs e) { EditText txt2 = FindViewById<EditText> (Resource.Id.textView1); EditText txt1 = FindViewById<EditText> (Resource.Id.textView2); num1 = result; Button sourcebutton=(sender as Button); string operatorsymbol = sourcebutton.Text; if (isfirst) isfirst = false; hasdecimal = true; symbol = operatorsymbol; txt1.Text = result.ToString (); } 

В визуальной студии это можно легко сделать, перейдя в обработчик событий кнопки и задав метод в событии onclick, как это сделать в xamarin. Я искал это для поиска и не нашел подходящего решения. Любая помощь будет оценена по достоинству.

Вы можете использовать обработчик событий вместо делегатов, попробуйте это

 btn9.Click += (object sender, EventArgs e) => { Buttonclick (sender, e); }; btnadd.Click += (object sender, EventArgs e) => { operationbuttonclick (sender, e); }; btnmul.Click += (object sender, EventArgs e) => { operationbuttonclick (sender, e); }; btnsub.Click += (object sender, EventArgs e) => { operationbuttonclick (sender, e); }; btndiv.Click += (object sender, EventArgs e) => { operationbuttonclick (sender, e); }; btneql.Click += delegate { txt1.Text=result.ToString(); isfirst=true; hasdecimal=true; shouldclear=true; }; btnCE.Click += delegate { txt1.Text="0"; result=0; isfirst=true; shouldclear=true; hasdecimal=false; }; 

И оставшийся код.

Вам может понравиться печатать много, но вот короткая версия. Ничего нового, он работает с .NET2.0 iirc

 btn9.Click += Buttonclick; btnadd.Click += operationbuttonclick; btnsub.Click += operationbuttonclick; btndiv.Click += operationbuttonclick; btnmul.Click += operationbuttonclick; btneql.Click += (o,e) => { txt1.Text=result.ToString(); isfirst=true; hasdecimal=true; shouldclear=true; }; btnCE.Click += (o,e) => { txt1.Text="0"; result=0; isfirst=true; shouldclear=true; hasdecimal=false; };