Текст Android CheckBox не отображается
Я пытаюсь динамически создавать некоторые CheckBox в одной из моих действий в Android, но это не делает текст.
Вот мой упрощенный код...
-
Формат 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>
-
Код операции:
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);
Мой "реальный" код немного сложнее (любая динамика), чем это, поэтому я не просто включил флажки в самом макете. Тем не менее, даже опускание моего кода по-прежнему не отображает корректный текст.
Вот скриншот, чтобы продемонстрировать (см. раздел "Привлечение к" ), с небольшим количеством дополнительных, чтобы продемонстрировать, что мой вертикальный макет, похоже, работает правильно иначе:
![Android checkboxes missing text]()
Ответы
Ответ 1
Конечно, я понял это вскоре после публикации щедрости.;) Оказывается, что, поскольку я устанавливал цвет фона в виде контейнера на белый, белый текст по умолчанию смешивался. Решение заключалось в том, чтобы установить цвет текста каждого флажка. то есть:.
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);
Ответ 2
вы не устанавливаете параметры макета, параметр Layout указывает, как будет отображаться элемент управления
final CheckBox female = new CheckBox(this);
female.setText("Female");
female .setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
attractedTo.addView(female);
Ответ 3
Возможно, это связано с упрощением вашего реального кода, но вы установили ширину и высоту вашего флажка?
Ответ 4
Я просто сделал то же самое и обнаружил, что я использовал setText("")
в initialisation code
а не setChecked(false)
. Dur!