Android CheckBox text not displaying
I'm trying to dynamically create some CheckBoxes in one of my Android activities, but it's not rendering the text.
Here is my simplified code...
Layout 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>
Activity code:
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);
My "开发者_C百科real" code is a little more complex (any dynamic) than this, which is why I haven't simply included the checkboxes in the layout itself. However, even dumbing down my code still doesn't render the checkbox text properly.
Here's a screenshot to demonstrate (see the "Attracted To" section), with a little extra to demonstrate that my vertical layout appears to be working properly otherwise:
Of course I figure this out shortly after posting a bounty. ;) It turns out that since I was setting my container view's background color to white, the default white text was blending in. The solution was to set the text color of each checkbox. i.e.:
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);
you are not setting the Layout parameters, Layout parameter says how the control will be shown
final CheckBox female = new CheckBox(this);
female.setText("Female");
female .setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
attractedTo.addView(female);
Maybe it's due to the simplification of your real code, but did you set width and height of your checkbox ?
I just did the same and found that I was using setText("")
in the initialisation code
rather than setChecked(false)
. Dur!
精彩评论