How to create a table in Android with multiple columns?

后端 未结 1 1279
予麋鹿
予麋鹿 2021-02-01 21:27

I want to create a table in android with multiple column. Most of the examples I saw is with 2 columns. (I am new to Java and Android.) I need 3-4 columns and I should be able t

相关标签:
1条回答
  • 2021-02-01 22:09

    I assume you're talking about a TableLayout view and not a table in a database??

    If so, here's an XML example of a table with three columns and three rows.

    Each < TableRow > element creates a row in the table, and each view inside the element creates a "column". I've used TextViews, but they can be 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>
    

    To dynamically change these in the code, you'd have something like this:

    // 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 讨论(0)
提交回复
热议问题