我有一个生成一系列单选按钮的代码,我想知道如何将它们分配到一个组中,这样如果启用了另一个单选按钮,则不会启用其他单选按钮。
这是我生成上述单选按钮的代码。
for (int i = 0; i < 20; i++)
{
RadioButton myRadio = new RadioButton(this);//use array
myRadio.setId(i);
final int id_ = myRadio.getId();
myRadio.setText("button " + id_);
LinearLayout li = (LinearLayout)findViewById(R.id.buttonlayout);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
li.addView(myRadio, lp);
btn = (RadioButton) findViewById(id_);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "Button clicked index = " + id_, Toast.LENGTH_SHORT).show();
}
});
}
btn是在函数外声明的按钮。它也是一个单选按钮
答案 0 :(得分:0)
试试此代码示例
final RadioButton[] rb = new RadioButton[20];
RadioGroup rg = new RadioGroup(this); //create the RadioGroup
rg.setOrientation(RadioGroup.VERTICAL);
for(int i=0; i<20; i++){
rb[i] = new RadioButton(this);
rg.addView(rb[i]);
rb[i].setText(" " + ContactsActivity.phonetype.get(i)
+ " " + ContactsActivity.phone.get(i));
rb[i].setId(i + 100);
}
ll.addView(rg);//you add the whole RadioGroup to the layout
更新 - 回答您在评论中提到的错误
要解决您的错误,请使用错误中的行号找出产生错误的行。看看你在那里添加什么
检查所有addView调用。 (提示:某处出现该错误的行号。使用它)
要尝试在评论中回答您的问题,您必须遵守这些规则;