Android TableLayout programmatically

前端 未结 3 2003
没有蜡笔的小新
没有蜡笔的小新 2020-12-10 08:44

I 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.

相关标签:
3条回答
  • 2020-12-10 09:29

    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));
    
    }
    

    }

    0 讨论(0)
  • 2020-12-10 09:38

    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.

    0 讨论(0)
  • 2020-12-10 09:45

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