如何为 Xamarin.Android 中的单选按钮编写 OnCheckedChangeListener

How to write a OnCheckedChangeListener for a radiobutton in 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
}

我需要一些有关如何正确实施侦听器的指导。 任何东西都会受到赞赏。

只需从 Java.Lang.Object 继承您的 class:

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

代码:

           //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 个单选按钮的单选按钮组。