Android CheckBox文本无法显示

时间:2011-10-07 15:32:47

标签: android android-layout checkbox

我正在尝试在我的某个Android活动中动态创建一些CheckBox,但它不会渲染文本。

这是我的简化代码......

  1. 布局XML:

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="10dip">
    
        ...
        <LinearLayout
            android:id="@+id/register_attracted_to"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" />
        ...
    </LinearLayout>
    
  2. 活动代码:

    final LinearLayout attractedTo = (LinearLayout) findViewById(R.id.register_attracted_to);
    
    final CheckBox male = new CheckBox(this);
    male.setText("Male");
    attractedTo.addView(male);
    
    final CheckBox female = new CheckBox(this);
    female.setText("Female");
    attractedTo.addView(female);
    
  3. 我的“真实”代码比这更复杂(任何动态),这就是我没有简单地在布局本身中包含复选框的原因。但是,即使对我的代码进行调整仍然无法正确呈现复选框文本。

    这是一个用于演示的屏幕截图(请参阅“吸引到”部分),稍加一些,以证明我的垂直布局似乎正常工作:

    Android checkboxes missing text

4 个答案:

答案 0 :(得分:22)

当然,我在发布赏金后不久就想到了这一点。 ;)事实证明,由于我将容器视图的背景颜色设置为白色,因此默认的白色文本正在混合。解决方案是设置每个复选框的文本颜色。即:

final LinearLayout attractedTo = (LinearLayout) findViewById(R.id.register_attracted_to);

final CheckBox male = new CheckBox(this);
male.setText("Male");
male.setTextColor(getResources().getColor(R.color.foreground_text));
attractedTo.addView(male);

final CheckBox female = new CheckBox(this);
female.setText("Female");
female.setTextColor(getResources().getColor(R.color.foreground_text));
attractedTo.addView(female);

答案 1 :(得分:5)

您没有设置布局参数,布局参数说明控件将如何显示

final CheckBox female = new CheckBox(this);
female.setText("Female");
female .setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
attractedTo.addView(female);

答案 2 :(得分:0)

也许是因为您的真实代码的简化,但您是否设置了复选框的宽度和高度?

答案 3 :(得分:0)

我只是做了同样的事情,发现我在setText("")中使用了initialisation code,而不是setChecked(false)。杜尔!