How to call a function in onclick event in xamarin.studio

android, c#, xamarin-studio

Solution

You can use event handler in place of delegates , try this

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;
        };

and remaining code same.

Problem

I am C# developer working on a simple calculator in xamarin.studio for android my code is ``` 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; }; ``` i am getting error in buttonclick(); and operationbuttonclick(); line 2 and 4 of above code. my buttonclickmethod and operationbuttonclick methods are ``` 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); } ``` and ``` 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 (); } ``` In visual studio it can easily be done by going event handler of button and set the method in onclick event how to do it in xamarin. I've googled for this and can't find any appropriate solution. any help will be appreciated.

Original source