Android TableLayout programmatically

前端 未结 3 2004
没有蜡笔的小新
没有蜡笔的小新 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: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);
    }
    

提交回复
热议问题