在程式中寫layout,通常有兩種狀況
1.按鈕或圖案會因為雲端資料做改變,所以要用程式寫來控制動態的改變
2.layout很嚴謹,不能因為手機不同尺寸不同而有改變,這時就要用程式來控制
 
●程式--java code
protected void onCreate(Bundle savedInstanceState) {
    int i;
    super.onCreate(savedInstanceState);
    //先把setContentView(R.layout.activity_main)刪除
    LinearLayout ll=new LinearLayout(MainActivity.this);
    //for做三個一樣的按鈕
    for (i=1;i<=3;i++){ 

        //先設定layoutwidth,height,weight
        LinearLayout.LayoutParams para= 
          new LinearLayout.LayoutParams
          (ViewGroup.LayoutParams.WRAP_CONTENT,
          ViewGroup.LayoutParams.WRAP_CONTENT,1);
        
        //其他屬性的設定可以如下
        //para.gravity = Gravity.CENTER; 
        //para.bottomMargin=20;
        Button btn=new Button(MainActivity.this);
        btn.setText("hello");
        //把設定好的layout設定給btn
        btn.setLayoutParams(para);
        final String str=String.valueOf(i);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();
            }
        });
        //linearlayout下加一個btn,因為btn也是view
        ll.addView(btn);
    }
    //如果不用linearlayout,而是直接setContentView(btn);
   //那就會有一個跟版面完全一樣大小的button
   //可以直接設定linearlayout,因為linearlayout也是view
    setContentView(ll); 
}
 
 
●程式參考(GitHub):動態產生按鈕
arrow
arrow

    muchone 發表在 痞客邦 留言(0) 人氣()