0

我正在创建 RadioButtons 并将它们动态添加到 RadioGroup 中。但是当我运行应用程序时,RadioButtons 的文本没有显示在屏幕上。

这是我的 RadioButtons 代码

else if ((items.get(i).toString()).equals("rad")) {
                RadioGroup bg = new RadioGroup(getApplicationContext());
                int child=0;
                for (int h = textlen; h < text.size(); textlen++) {

                    if (text.get(textlen).contains("(")) {

                        s = text.get(textlen).replace("(", "");

                        if (s.contains(")"))
                            s = s.replace(")", "");

                    } else if (text.get(textlen).contains(")")) {
                        s = text.get(textlen).replace(")", "");
                    } else
                        s = text.get(textlen);

                    RadioButton radioButton = new RadioButton(
                            getApplicationContext());
                    bg.addView(radioButton);
                    // / radioButton.setName("rbt");
                    if (s.contains("{on}")) {
                    //  radioButton.setSelected(true);
                        radioButton.setChecked(true);
                        s = s.replace("{on}", "");
                    } else {
                        radioButton.setChecked(false);
                        s = s.replace("{of}", "");
                    }
                    //((RadioButton)bg.getChildAt(child)).setText(s);
                    //child++;

                    radioButton.setText(s);

                    String c = text.get(textlen).substring(
                            text.get(textlen).length() - 1);
                    if (c.equals(")")) {
                        textlen++;
                        break;
                    }



                }

                layout.addView(bg);
            }

当我调试代码时,我可以看到文本已添加到 RadioGropus 子项中

但是在运行应用程序时,文本是不可见的。任何人都可以发现这个问题。多谢

4

3 回答 3

2

只需添加

setLayoutParams(params);

对于 RadioButton 和 RadioGroup。

在哪里

android.widget.LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
于 2014-10-28T10:30:48.410 回答
2

只需更改文本颜色,您的文本就会出现。默认情况下,文本颜色为白色,这是我的问题

于 2015-08-01T11:51:52.520 回答
1

这种情况经常发生,因为没有为小部件分配足够的空间,并且尽管存在文本,但它们无法显示文本。如果调试器显示文本,则代码很好...检查 XML 并为小部件分配适当的空间。尝试分配硬编码文本以进行澄清。

于 2014-10-28T07:28:11.373 回答