web-dev-qa-db-fra.com

Comment créer une table en Android avec plusieurs colonnes?

Je veux créer une table en Android avec plusieurs colonnes. La plupart des exemples que j'ai vus sont avec 2 colonnes. (Je suis nouveau sur Java et Android. ) J'ai besoin de 3-4 colonnes et je devrais pouvoir ajouter les lignes dynamiquement dans le tableau. Quelqu'un peut-il me fournir un exemple de code (j'utilise Eclipse dans win 7)

16
narayanpatra

Je suppose que vous parlez d'une vue TableLayout et non d'une table dans une base de données ??

Si tel est le cas, voici un exemple XML d'une table avec trois colonnes et trois lignes.

Chaque élément <TableRow> crée une ligne dans le tableau et chaque vue à l'intérieur de l'élément crée une "colonne". J'ai utilisé TextViews, mais ils peuvent être ImageViews, EditText, 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>

Pour les modifier dynamiquement dans le code, vous auriez quelque chose comme ceci:

// 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);
25
Peter