In this post I explain how to implement in runtime a table with rows and columns without using a XML file.
To display the borders of the TextView I use the method illustrated here.
-
- Create in Eclipse an Android Project
in my pc I have:- Eclipse 3.7.1
- Android 4.0.3
- SDK 15
- Create in Eclipse an Android Project
-
- modify the file res/layout/main.xml is as follows (it should be the default plus the line “android:id=”@+id/linearLayout1”)
12345678<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/linearLayout1"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ></LinearLayout>
- modify the file res/layout/main.xml is as follows (it should be the default plus the line “android:id=”@+id/linearLayout1”)
-
- modify the main activity
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657package eu.lucazanini;import android.app.Activity;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.os.Bundle;import android.widget.LinearLayout;import android.widget.TableLayout;import android.widget.TableRow;import android.widget.TextView;public class DynamicTableLayoutActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout1);TableLayout table = new TableLayout(this);for (int i = 0; i < 10; i++) {TableRow row = new TableRow(this);for (int j = 0; j < 10; j++) {TextView cell = new TextView(this) {@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);Rect rect = new Rect();Paint paint = new Paint();paint.setStyle(Paint.Style.STROKE);paint.setColor(Color.WHITE);paint.setStrokeWidth(2);getLocalVisibleRect(rect);canvas.drawRect(rect, paint);}};cell.setText(i + ", " + j);cell.setPadding(6, 4, 6, 4);row.addView(cell);}table.addView(row);}layout.addView(table);}}
- modify the main activity
- launch the application
One reply on “Dynamic TableLayout in Android”
Really thanks.
its been worked in efficent way !