如何在Xamarin.Android中为radiobutton编写OnCheckedChangeListener

时间:2015-03-31 11:31:47

标签: android xamarin xamarin.android

我目前正在Xamarin中编写一个Radio组,根据从DB获取的答案集动态地为组添加单选按钮。

我需要一些Xamarin.Android所需的自定义监听器的帮助。

我调用创建侦听器并向其传递一个单选按钮,然后检查状态如下:

    MyListner c = new MyListner();
    c.OnCheckedChanged(rBtn, rBtn.Checked);

我当前的听众代码:

public class MyListner : CompoundButton.IOnCheckedChangeListener{

    #region IOnCheckedChangeListener implementation

    public void OnCheckedChanged(CompoundButton buttonView, bool isChecked)
    {           
        if (isChecked)
        {
            //If Checked code here
        }
    }

    #endregion

    #region IDisposable implementation

    public void Dispose()
    {
        throw new System.NotImplementedException();
        // NEED HELP HERE
    }

    #endregion

    #region IJavaObject implementation

    public System.IntPtr Handle
    {
        get
        {
            throw new System.NotImplementedException();
            // NEED HELP HERE
        }
    }

    #endregion
}

我需要一些关于如何正确实现监听器的指导。 任何事情都会受到赞赏。

2 个答案:

答案 0 :(得分:0)

从Java.Lang.Object继承您的类:

public class OnCheckedChangeListener : Java.Lang.Object, Android.Widget.RadioGroup.IOnCheckedChangeListener
{
    public void OnCheckedChanged (RadioGroup group, int checkedId){
    }
}

答案 1 :(得分:0)

代码:

           //Radio Group
            var radioGroup = new RadioGroup(this);
            radioGroup.Orientation = Orientation.Horizontal; 

             //Declaring arrays
                int [] s_id = new int[] { 1, 2,};
                string [] s_sex = new string[] { Male, Female};

            // looping arrays to create radio button
                for (int j = 0; j < s_id.Length; j++)
                {
                    RadioButton radBut = new RadioButton(this);
                    radBut.Id = j;
                    radBut.Text = s_sex[j];

            //Radio Button Click Listener
                    radBut.Click += (sender, e) =>{
                      var radC = sender as RadioButton;
                      string radioChecked = radC.Text;
                      int radioId = radC.Id;
                      Toast.MakeText(this, radioChecked, ToastLength.Short).Show();
                   };
             //Adding Radio Button to Radio Group
                    radioGroup.AddView(radBut);
                }

上面的代码将创建一个带有2个单选按钮的无线电组。

Dynamic Radio button with click listener