2011-03-08 21 views
14

Quiero crear una tabla en Android con múltiples columnas. La mayoría de los ejemplos que vi son con 2 columnas. (Soy nuevo en Java y Android.) Necesito 3-4 columnas y debería poder agregar las filas dinámicamente en la tabla. ¿Alguien puede proporcionarme un código de muestra? (Estoy usando eclipse en win 7)¿Cómo crear una tabla en Android con múltiples columnas?

Respuesta

23

Supongo que está hablando de una vista de TableLayout y no de una tabla en una base de datos ??

Si es así, aquí hay un ejemplo XML de una tabla con tres columnas y tres filas.

Cada < TableRow> elemento crea una fila en la tabla, y cada vista dentro del elemento crea una "columna". He usado TextViews, pero pueden ser ImageViews, EditarTexto, etc.

<?xml version="1.0" encoding="utf-8"?> 

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id = "@+id/RHE" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="0" 
     android:padding="5dp"> 

    <TableRow android:layout_height="wrap_content"> 
     <TextView 
      android:id="@+id/runLabel" 
      android:text="R" 
      android:layout_height="wrap_content" 
      /> 
     <TextView 
      android:id="@+id/hitLabel" 
      android:text="H" 
      android:layout_height="wrap_content" 
      /> 
     <TextView 
      android:id="@+id/errorLabel" 
      android:text="E" 
      android:layout_height="wrap_content" 
      /> 
    </TableRow> 

    <TableRow android:layout_height="wrap_content"> 
     <TextView 
      android:id="@+id/visitorRuns" 
      android:text="0" 
      android:layout_height="wrap_content" 
      /> 
     <TextView 
      android:id="@+id/visitorHits" 
      android:text="0" 
      android:layout_height="wrap_content" 
      /> 
     <TextView 
      android:id="@+id/visitorErrors" 
      android:text="0" 
      android:layout_height="wrap_content" 
      /> 
    </TableRow> 

    <TableRow android:layout_height="wrap_content"> 
     <TextView 
      android:id="@+id/homeRuns" 
      android:text="0" 
      android:layout_height="wrap_content" 
      /> 
     <TextView 
      android:id="@+id/homeHits" 
      android:text="0" 
      android:layout_height="wrap_content" 
      /> 
     <TextView 
      android:id="@+id/homeErrors" 
      android:text="0" 
      android:layout_height="wrap_content" 
      /> 
    </TableRow> 
</TableLayout> 

Para cambiar dinámicamente estos en el código, que tendría algo como esto:

// reference the table layout 
TableLayout tbl = (TableLayout)findViewById(R.id.RHE); 
// delcare a new row 
TableRow newRow = new TableRow(this); 
// add views to the row 
newRow.addView(new TextView(this)); // you would actually want to set properties on this before adding it 
// add the row to the table layout 
tbl.addView(newRow); 
+0

Sí, quiero una vista de diseño de la tabla. Las columnas no están posicionadas correctamente. ¿Cómo colocar las columnas? ¿Cómo puedo agregar las filas dinámicamente? – narayanpatra

+0

No estoy seguro de a qué te refieres con 'posición incorrecta'. TableLayout se dimensionará de acuerdo con sus propiedades, al igual que los elementos dentro. Quizás si publicaste tu xml y lo que esperas ver, tendremos más capacidad para responder la pregunta. – Peter

+0

Utilicé el código del archivo xml tal como está. Solo cambia las primeras 2 líneas. es decir, narayanpatra

Cuestiones relacionadas