其他分享
首页 > 其他分享> > android-如何将单选按钮添加到单选组

android-如何将单选按钮添加到单选组

作者:互联网

我有一个TableLayout,并且在每一行的第三列中要放置一个单选组.
我像这样构建RadioButtons:

rg = (RadioGroup) findViewById(R.id.radioGroup1);

for (int k = 0; k < size; k++) {
    rb[k] = new RadioButton(context);
    rg.addView(rb[k]);
}

但这会导致我的应用崩溃,有什么想法吗?

解决方法:

您正在构建具有megethos长度的原始数组,但是循环使用长度大小.如果megethos和size是不同的值,则可能导致许多不同类型的错误…但是所有这些都是多余的,因为RadioGroup会为您保持此数组为最新.

我会尝试这样的事情:

RadioGroup group = (RadioGroup) findViewById(R.id.radioGroup1);
RadioButton button;
for(int i = 0; i < 3; i++) {
    button = new RadioButton(this);
    button.setText("Button " + i);
    group.addView(button);
}

当您要引用索引处的按钮时:

group.getChildAt(index);

另外,请务必发布您的logcat错误,它会告诉我们确切的错误和查找的位置.否则,我们必须这样猜测.

更新资料

该错误是因为您试图将同一按钮添加到两个不同的布局中:

tr[k].addView(rb[k]);
rg.addView(rb[k]);

一个视图只能有一个父级.据我所知,如果不先进行大量自定义,就无法将RadioGroup分解为多个视图.但是,ListView已经具有内置功能setChoiceMode(),其行为类似于RadioGroup:

List<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, list);
ListView listView = (ListView) findViewById(R.id.list);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setAdapter(adapter);

您可以轻松地使simple_list_item_checked适应以显示SSID和信号强度.希望能有所帮助. (如果您等待了足够长的时间,imran khan可能会剪切并粘贴我的答案并进行图形更改,然后再次声明为自己的答案.)

标签:android,radio-button
来源: https://codeday.me/bug/20191101/1982885.html