Χρη*_*σαν 5 android radio-button
我有一个TableLayout,并且在每一行的第三列中要放置一个单选组。我像这样构建RadioButtons:
rg = (RadioGroup) findViewById(R.id.radioGroup1);
for (int k = 0; k < size; k++) {
rb[k] = new RadioButton(context);
rg.addView(rb[k]);
}
Run Code Online (Sandbox Code Playgroud)
但这会导致我的应用崩溃,有什么想法吗?
您正在构建长度为的原始数组megethos,但是循环使用length size。如果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);
}
Run Code Online (Sandbox Code Playgroud)
当您要引用位于的按钮时index:
group.getChildAt(index);
Run Code Online (Sandbox Code Playgroud)
另外,请务必发布您的logcat错误,它会告诉我们确切的错误和查找的位置。否则,我们必须这样猜测。
更新资料
该错误是因为您试图将同一按钮添加到两个不同的布局中:
tr[k].addView(rb[k]);
rg.addView(rb[k]);
Run Code Online (Sandbox Code Playgroud)
一个视图只能有一个父级。据我所知,如果不先进行大量自定义,就无法将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);
Run Code Online (Sandbox Code Playgroud)
您可以轻松调整simple_list_item_checked以显示SSID和信号强度。希望能有所帮助。(如果您等待了足够长的时间,imran khan可能会用图形更改剪切并粘贴我的答案,然后再次声明为自己的答案。)
| 归档时间: |
|
| 查看次数: |
22782 次 |
| 最近记录: |