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