Intereting Posts
Удалось ли разработчикам Android получить пакетный протокол передачи из веб-службы? Android SDK Manager не обновляет версию инструментов сборки SDK 18.1.1 Как загрузить и кешировать растровое изображение с использованием библиотеки Picasso Запись голосового вызова на Android Lollipop и более поздняя версия не работают Android Lollipop отправляет несколько BroadcastReceivers для изменений состояния телефона Android – 3-строчная раскладка столбцов – как мне заставить ее занимать процент экрана? Календарь пользовательского интерфейса в Android Как исправить панель действий Шерлок заслонки ширины несогласованности? ListRragment "показ контента еще не создан" в Rotate У Android программно вставленных SMS есть некорректная метка времени в приложениях обмена сообщениями Google Cloud Messaging отправляет уведомление всем устройствам Какой самый простой способ заставить Idea генерировать файл R.Java? Проверить строку с регулярным выражением на android Измените цвет маленького треугольника на spinner в android Android ImageButton с изображением и текстом

Как вызвать функцию в событии 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; };