我想出了一个简单的类,让它变得非常容易。这一切都在一个java文件中。这是一个“未绑定”的广播组。您可以根据自己的喜好布局单选按钮,将按钮添加到组中,它就像一个 radioGroup。
代码在这个要点UnboundRadioGroup,有完整的解释,但这里是它的用法:
如果不想使用匿名内部类,可以使用 implements
public class MainActivity extends AppCompatActivity implements UnboundRadioGroup.OnClickListener
有几种方法可以创建组。
找到根视图组
ViewGroup viewGroup = (ViewGroup) findViewById(android.R.id.content);
// create a radio group with the root viewgroup
UnboundRadioGroup unboundRadioGroup1 = new UnboundRadioGroup(this, viewGroup);
// don't forget to set a click listener for the group. Using implements in this case
unboundRadioGroup1.setOnClickListener(this);
或使用根视图组的 id 创建一个无线电组,无论您喜欢哪个。
UnboundRadioGroup unboundRadioGroup2 = new UnboundRadioGroup(this, android.R.id.content);
// add your click listener using an inner class
unboundRadioGroup2.setOnClickListener(new UnboundRadioGroup.OnClickListener()
{
@Override
public void OnClick(RadioButton radioButton)
{
Log.i("radioButton", radioButton.getTag().toString());
}
});
此方法手动将按钮添加到您的组
unboundRadioGroup1.add((RadioButton) findViewById(R.id.radioButton1));
unboundRadioGroup1.add((RadioButton) findViewById(R.id.radioButton2));
并且此方法会根据 XML 中的 android:tag 属性自动将按钮添加到您的组中。请注意,如果您需要代码中其他地方的标签,则不应使用此方法。但是,如果您不需要标签,您可以将多个单选按钮的标签设置为相同的名称,然后此方法将从它们创建一个组
unboundRadioGroup2.createGroupByTag("tag");
如果您使用的是实现而不是内部类,则您的 Onclick 将设置如下:
@Override
public void OnClick(RadioButton radioButton)
{
Log.i("radioButton", radioButton.getTag().toString());
}