开发者

Android TableLayout programmatically

I开发者_JAVA百科 learned how to create UI using XML file.But please help me to know how to do it programmatically without using XML files especially for other than LinearLayout.


Use the following code to create the TableLayout

TableLayout tbl=new TableLayout(context);

Use the below to create the Table row

TableRow tr=new TableRow(context);

add View into table row

tr.addView(view);

here view may be a TextView or EditText or ect..

add Table Row into TableLayout

tbl.addView(tr);

Like that you can add more table rows into Table Layout.


The below code example is given Here.

public class tablelayout extends Activity implements OnClickListener {
/** Called when the activity is first created. */

//initialize a button and a counter
Button btn;
int counter = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // setup the layout
    setContentView(R.layout.main);

    // add a click-listener on the button
    btn = (Button) findViewById(R.id.Button01);
    btn.setOnClickListener(this);        

}

// run when the button is clicked
public void onClick(View view) {

    // get a reference for the TableLayout
    TableLayout table = (TableLayout) findViewById(R.id.TableLayout01);

    // create a new TableRow
    TableRow row = new TableRow(this);

    // count the counter up by one
    counter++;

    // create a new TextView
    TextView t = new TextView(this);
    // set the text to "text xx"
    t.setText("text " + counter);

    // create a CheckBox
    CheckBox c = new CheckBox(this);

    // add the TextView and the CheckBox to the new TableRow
    row.addView(t);
    row.addView(c);

    // add the TableRow to the TableLayout
    table.addView(row,new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

}

}


|*| Table Layout for 3 x 3 buttons using Java Code :

Set number of Rows in tblRowCwtVal
Set number of Columns in tblColCwtVal
Set the String | Drawable in tblAryVar

In this example, we have used button for each table view. You can use TextView | ImageView and modify accordingly

int tblRowCwtVal = 3;
int tblColCwtVal = 3;
int[][] tblAryVar =
     {
        {R.drawable.ic_name, R.drawable.ic_name, R.drawable.ic_name},
        {R.drawable.ic_name, R.drawable.ic_name, R.drawable.ic_name},
        {R.drawable.ic_name, R.drawable.ic_name, R.drawable.ic_name}
     };

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.srn_nam_uic);

    namRelLyoVar = (RelativeLayout) findViewById(R.id.NamSrnLyoUid);

    TableLayout namTblLyoVar = new TableLayout(this);
    TableLayout.LayoutParams tblLyoRulVar = new TableLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    TableRow.LayoutParams btnLyoRulVar = new TableRow.LayoutParams(50,50);

    for(int tblRowIdxVar = 0; tblRowIdxVar < tblRowCwtVal; tblRowIdxVar++)
    {
        TableRow tblRowVar = new TableRow(this);

        for(int tblColIdxVar = 0; tblColIdxVar < tblColCwtVal; tblColIdxVar++)
        {
            Button namIdxBtnVar = new Button(this);
            Drawable DrwablIdxVar = getResources().getDrawable(tblAryVar[tblRowIdxVar][tblColIdxVar]);
            DrwablIdxVar.setColorFilter(Color.rgb(0,128,0), PorterDuff.Mode.SRC_IN);
            namIdxBtnVar.setBackground(DrwablIdxVar);

            tblRowVar.addView(namIdxBtnVar, btnLyoRulVar);
        }
        namTblLyoVar.addView(tblRowVar, tblLyoRulVar);
    }

    namTblLyoVar.setLayoutParams(tblLyoRulVar);
    namRelLyoVar.addView(namTblLyoVar);
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜