以前はRadioGroup
、動的に作成されたラジオボタンから選択する項目を 1 つだけ実装していました。
final LinearLayout firstRowTxtLayout = new LinearLayout(fContext);
firstRowTxtLayout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
rbGroup.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
rbButton = new RadioButton(fContext);
rbButton.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
rbButton.setId(rbTagincreament);
rbGroup.addView(rbButton);
そしてRadioGroup
、ループの外で初期化しました。RadioGroup
ビューを別のレイアウトに追加しました
再度変更しました(下図)。これでラジオ ボタンを取得できましたが、グループ内のすべてのボタンを選択できます。
private void createRadioButton(int num) {
Log.i("comVisa", "Num ==" + num);
rg = new RadioGroup(fContext); // create the RadioGroup
rg.setOrientation(RadioGroup.HORIZONTAL);// or RadioGroup.VERTICAL
rb = new RadioButton(fContext);
rb.setId(num++);
rg.addView(rb); // the RadioButtons are added to the radioGroup instead
// of the layout
firstRowTxtLayout.addView(rg);// you add the whole RadioGroup to the
// layout
rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
}
});
}
rg = new RadioGroup(fContext);
外部を初期化すると、次のようになります。
`IllegalStateException`. You must call removeView() on the child's parent first while using RadioGroup
コード行を含む Logcat:
03-12 14:05:35.266: W/System.err(32734): at com.vipera.ts.gui.custom.comVisaApprovalList.createRadioButton(comVisaApprovalList.java:531) firstRowTxtLayout.addView(rg);
03-12 14:05:35.266: W/System.err(32734): at com.vipera.ts.gui.custom.comVisaApprovalList.constructRow(comVisaApprovalList.java:459)createRadioButton(rbTagincreament++);
03-12 14:05:35.271: W/System.err(32734): at com.vipera.ts.gui.custom.comVisaApprovalList.createTableLayout(comVisaApprovalList.java:411)
03-12 14:05:35.271: W/System.err(32734): at com.vipera.ts.gui.custom.comVisaApprovalList.init(comVisaApprovalList.java:121)