Android CheckBox текст не отображается - PullRequest
10 голосов
/ 07 октября 2011

Я пытаюсь динамически создать несколько флажков в одном из моих действий Android, но это не рендеринг текста.

Вот мой упрощенный код ...

  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);
    

Мой «настоящий» код немного сложнее (любой динамический), чем этот, поэтому я не просто включил флажки в сам макет. Тем не менее, даже приглушение моего кода по-прежнему не отображает текст флажка правильно.

Вот скриншот для демонстрации (см. Раздел «Привлеченные»), с небольшим дополнительным, чтобы продемонстрировать, что мой вертикальный макет, кажется, работает должным образом:

Android checkboxes missing text

Ответы [ 4 ]

23 голосов
/ 11 октября 2011

Конечно, я понял это вскоре после публикации награды.;) Оказывается, так как я установил белый цвет фона моего представления контейнера, белый текст по умолчанию сливался. Решением было установить цвет текста каждого флажка.т.е.:

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);
5 голосов
/ 07 октября 2011

вы не устанавливаете параметры Layout, параметр 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);
0 голосов
/ 01 мая 2019

Я просто сделал то же самое и обнаружил, что я использовал setText("") в initialisation code вместо setChecked(false).Dur!

0 голосов
/ 07 октября 2011

Может быть, это из-за упрощения вашего реального кода, но вы установили ширину и высоту вашего флажка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...