Adding Table rows Dynamically in Android
Display Data in GridView in Android
How to use TextView to display GridView item text in Android ?
Output Form like this
Solutions:
Layout file like:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.root.mymysqlapp.Table2Activity">
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#3d455b"
android:layout_alignParentLeft="true" >
<HorizontalScrollView
android:id="@+id/hscrll1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_gravity="center"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TableLayout
android:id="@+id/table_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" >
</TableLayout>
</RelativeLayout>
</HorizontalScrollView>
</ScrollView>
</RelativeLayout>
Code like this :
Create an init() function and point the table layout. Then create the needed rows and columns. Call init function in your onCreate method:
package com.example.root.mymysqlapp;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class Table2Activity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_table2);
        init();
    }
    public void init() {
        TableLayout stk = (TableLayout) findViewById(R.id.table_main);
        TableRow tbrow0 = new TableRow(this);
        TextView tv0 = new TextView(this);
        tv0.setText(" Sl.No ");
        tv0.setTextColor(Color.WHITE);
        tbrow0.addView(tv0);
        TextView tv1 = new TextView(this);
        tv1.setText(" Student Name ");
        tv1.setTextColor(Color.WHITE);
        tbrow0.addView(tv1);
        TextView tv2 = new TextView(this);
        tv2.setText(" Class ");
        tv2.setTextColor(Color.WHITE);
        tbrow0.addView(tv2);
        TextView tv3 = new TextView(this);
        tv3.setText(" Total Fee ");
        tv3.setTextColor(Color.WHITE);
        tbrow0.addView(tv3);
        stk.addView(tbrow0);
        for (int i = 1; i <= 25; i++) {
            TableRow tbrow = new TableRow(this);
            TextView t1v = new TextView(this);
            t1v.setText(""+i);
            t1v.setTextColor(Color.WHITE);
            t1v.setGravity(Gravity.CENTER);
            tbrow.addView(t1v);
            TextView t2v = new TextView(this);
            t2v.setText("Student " + i);
            t2v.setTextColor(Color.WHITE);
            t2v.setGravity(Gravity.CENTER);
            tbrow.addView(t2v);
            TextView t3v = new TextView(this);
            t3v.setText("1-A");
            t3v.setTextColor(Color.WHITE);
            t3v.setGravity(Gravity.CENTER);
            tbrow.addView(t3v);
            TextView t4v = new TextView(this);
            t4v.setText("1500.00");
            t4v.setTextColor(Color.WHITE);
            t4v.setGravity(Gravity.CENTER);
            tbrow.addView(t4v);
            stk.addView(tbrow);
        }
    }
}
Above application expline working of TableLayout .
How add and delete rows to table layout in java programically
How to delete table row in table layout in android
Layout:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:id="@+id/table"
             android:layout_width="match_parent"
             android:layout_height="match_parent">
</TableLayout>
Activity:
public class TableLayoutActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.table_layout);
    final TableLayout tableLayout = (TableLayout) findViewById(R.id.table);
    for (int i = 0; i < 5; i++) {
        // Creation row
        final TableRow tableRow = new TableRow(this);
        tableRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT));
        // Creation textView
        final TextView text = new TextView(this);
        text.setText("Test" + i);
        text.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
        // Creation  button
        final Button button = new Button(this);
        button.setText("Delete");
        button.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final TableRow parent = (TableRow) v.getParent();
                tableLayout.removeView(parent);
            }
        });
        tableRow.addView(text);
        tableRow.addView(button);
        tableLayout.addView(tableRow);
    }
}
}
Inserting table row beginning of table layout in java programmatically
tbl.addView(View child, int index)
child contains rows object and index contains for add row position in table layout.
Example
tbl.addView(row,0); // added first row
.tbl.addView(row,1); // added second row
.
tbl.addView(row);  // added row in end of table layout.
Dynamically add imagebutton programatically android
ImageButton b1 = new ImageButton(this);
b1.setImageResource(R.drawable.delete);
b1.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final TableRow parent = (TableRow) v.getParent();
stk.removeView(parent);
}
});
tbrow.addView(b1);
How do I get values from a dynamically created android TableRow?
getChildAt to get a hold of the two TextViews and get the data:
tr.setOnClickListener(new View.OnClickListener() {
   public void onClick(View view) {
      TableRow t = (TableRow) view;
      TextView firstTextView = (TextView) t.getChildAt(0);
      TextView secondTextView = (TextView) t.getChildAt(1);
      String firstText = firstTextView.getText().toString();
      String secondText = secondTextView.getText().toString();
   }
});
Solution for the get values of selected row on clicked button in table row.
ImageButton b1 = new ImageButton(EntriesActivity.this); b1.setImageResource(R.drawable.delete); b1.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT)); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final TableRow parent = (TableRow) v.getParent(); //code for remove concerned row //stk.removeView(parent); TextView items = (TextView) parent.getChildAt(7); Toast.makeText(getApplicationContext(), items.getText().toString() ,Toast.LENGTH_SHORT).show(); } });row.addView(b1);
How to hide a particular column in Android TableRow
Try to Use 
setVisibility(View.GONE); t3v.setVisibility(View.GONE);
TextView id = new TextView(EntriesActivity.this); id.setText(content.get("id").toString()); id.setTextColor(Color.WHITE); id.setVisibility(View.GONE); row.addView(id);
Get total RowCount for TableLayout in Android
Through this code you can get the total 
rowCount for TableLayoutTableLayoutName.getChildCount();
Examples
TableLayout tb = (TableLayout) findViewById(R.id.table_main);
if(tb.getChildCount()>1){
.....Code Here.....
}
Adding space between columns of a TableLayout
  TextView count = new TextView(RptsalesreportdisplayActivity.this);
  count.setText(obj.get("count").toString());
  count.setTextColor(Color.WHITE);
  count.setPadding(0,0,30,0);
  row.addView(count);
<TableRow
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >
    <TextView
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight=".25"
        android:gravity="center"
        android:text="col1" />   ...........
Set tablelayout row background color programmatically
tbrow0.setBackgroundResource(R.color.cgreen);



