2011-10-07 25 views
10

Estoy intentando crear dinámicamente algunos CheckBoxes en una de mis actividades de Android, pero no está procesando el texto.Texto de Android CheckBox que no muestra

Aquí está mi código simplificado ...

  1. diseño xml: Código

    <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. Actividad:

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

Mi código "real" es una poco más complejo (cualquier dinámica) que esto, que es por qué no he incluido simplemente las casillas de verificación en el diseño en sí. Sin embargo, incluso embrutecer mi código aún no muestra el texto de la casilla de verificación correctamente.

Aquí hay una captura de pantalla para demostrar (véase el "Atraídos to"), con un poco más para demostrar que mi disposición vertical parece estar funcionando adecuadamente de otro modo:

Android checkboxes missing text

+0

No añadiría componentes de IU dinámicamente, porque hay una dificultad para revisarlos en el momento del desarrollo. un desarrollador necesita ejecutar toda la aplicación solo para ver los componentes agregados. Humildemente sugiero agregarlos sin visibilidad. Es muy liviano porque nunca se dibujan pero aún se pueden encontrar (findViewById). –

+1

Las casillas de verificación se generan a través de HttpRequest, lo que significa que su sugerencia es imposible. –

Respuesta

21

Por supuesto, me doy cuenta de esto poco después de publicar una recompensa. ;) Resultó que desde que estaba configurando el color de fondo de mi vista de contenedor en blanco, el texto blanco predeterminado se estaba mezclando. La solución fue establecer el color del texto de cada casilla de verificación. es decir .:

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

esto también me pasó a mí. Parece que el color de texto predeterminado para las casillas de verificación es blanco en los dispositivos pre-nidos de abeja –

+0

sí, al igual que las vistas de texto –

5

no está configurando el parámetros de diseño, parámetros de diseño dice cómo se mostrará el control

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

Intenté hacer esto anteriormente, lo cual no funcionó para mí: 'male.setLayoutParams (new LinearLayout.LayoutParams (LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));' Intentaré con su solución en cuanto tenga un momento. –

+0

Parece que la casilla de verificación solo acepta 'ViewGroup.LayoutParams', y no hay un tercer parámetro para este constructor, como usted suministra aquí. Probé el constructor de dos parámetros usando 'LayoutParams.WRAP_CONTENT' para cada uno, y tampoco funcionó. –

+0

pero su código está perfectamente bien para mí – jazz

0

Tal vez sea debido a la simplificación de su código real, pero no se establece la anchura y la altura de la casilla de verificación?

+0

Ver mis comentarios en la respuesta de [@ jazz] (http://stackoverflow.com/questions/7689475/android-checkbox-text-not-displaying/7689533#7689533). –

Cuestiones relacionadas