是否有可能确定Android中特定单选按钮属于哪个无线电组?
例如:
RadioGroup_A
- RadioButton_1A
- RadioButton_2A
RadioGroup_B
- RadioButton_1B
- RadioButton_2B
当我有RadioButton_1A时,要认定属于RadioGroup_A?
我需要实现一个逻辑来忽略为特殊情况触发CheckedChange监听器。当我知道RadioButton属于那个特定的RadioGroup时,需要仅限制一个RadioGroup。
谢谢
答案 0 :(得分:1)
radioGroup.indexOfChild
方法怎么样?该文件说回报:
表示组中视图位置的正整数, 如果视图不存在于组
中,则返回-1
也许您可以检查RadioButton
中的RadioGroup
是否已退出:
int idx = radioGroup.indexOfChild(radioButton);
if (idx != -1)
{
//radioButton is in the radioGroup
}
else {
//radioButton isnt in the radioGroup
}
希望它有所帮助!
答案 1 :(得分:1)
在我的一个应用程序中,我通过拥有两个RadioButon ArrayLists来实现这一点,每个组一个。在布局膨胀后的onCreate()中,RadioButtons将按照this answer中的描述添加到每个组中。
然后,通过检查哪个ArrayList包含RadioButton,可以实现所需的逻辑。
答案 2 :(得分:1)
我描述了您的问题的完整示例,请申请我的解决方案
public class MyClass extends Activity implements RadioGroup.OnCheckedChangeListener
{
RadioGroup rg1,rg2,rg3;
public void onCreate(Bundle b)
{
super.onCreate(b);
setContentView(R.layout.main);
rg1=(RadioGroup)findViewById(R.id.rg1);
rg2=(RadioGroup)findViewById(R.id.rg2);
rg3=(RadioGroup)findViewById(R.id.rg3);
rg1.setOnCheckedChangeListener(this);
rg2.setOnCheckedChangeListener(this);
rg3.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
if(radioGroup==rg1)
{
//First RadioGroup Clicked
RadioButton radio=(RadioButton)findViewById(i);
Toast.makeText(this,radio.getText().toString(),Toast.LENGTH_SHORT).show();
}
if(radioGroup==rg2)
{
//Second RadioGroup Clicked
RadioButton radio=(RadioButton)findViewById(i);
Toast.makeText(this,radio.getText().toString(),Toast.LENGTH_SHORT).show();
}
if(radioGroup==rg3)
{
//Third RadioGroup Clicked
RadioButton radio=(RadioButton)findViewById(i);
Toast.makeText(this,radio.getText().toString(),Toast.LENGTH_SHORT).show();
}
}
}