021_03布局之代码实现

   一般情况下对于Android程序布局我们往往使用XML文件来编写,这样可以提高开发效率。但是考虑到代码的安全性以及执行效率,可以通过Java代码执行创建。当然Java处理效率比XML快得多,但是对于一个复杂界面的编写,可能需要一些套嵌考虑,如果你思维灵活的话,使用Java代码来布局你的Android应用程序是一个更好的方法。

 1 package com.example.day21_03ProgrammingUI;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.view.View;
 6 import android.view.View.OnClickListener;
 7 import android.widget.Button;
 8 import android.widget.LinearLayout;
 9 import android.widget.LinearLayout.LayoutParams;
10 import android.widget.Toast;
11 
12 public class MainActivity extends Activity  implements OnClickListener{
13 
14     @Override
15     protected void onCreate(Bundle savedInstanceState) {
16         super.onCreate(savedInstanceState);                 
17         //代码生成的linearlayout 默认为水平布局
18         //但是 按钮默认的是 fill parent 
19         LinearLayout ll = new LinearLayout(this);        
20         ll.setOrientation(LinearLayout.VERTICAL);
21         
22         Button b1 = new Button(this);
23         b1.setText("按键1");    
24         LayoutParams  params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);         
25         b1.setLayoutParams(params);        
26         ll.addView(b1);
27     
28         Button b2 = new Button(this);
29         b2.setText("按键2");
30         b2.setLayoutParams(params);
31         ll.addView(b2);
32         
33         LinearLayout layout2 = new LinearLayout(this);
34         Button b3 = new Button(this);
35         b3.setText("按键3");
36         b3.setLayoutParams(params);        
37         layout2.addView(b3);
38             
39         Button b4= new Button(this);
40         b4.setText("按键4");
41         b4.setLayoutParams(params);
42         layout2.addView(b4);
43         
44         ll.addView(layout2);
45         
46         setContentView(ll);
47         
48         b1.setId(1);
49         b2.setId(2);
50         b3.setId(3);
51         b4.setId(4);
52         
53         b1.setOnClickListener(this);
54         b2.setOnClickListener(this);
55         b3.setOnClickListener(this);
56         b4.setOnClickListener(this);        
57     }
58 
59     @Override
60     public void onClick(View v) {
61         // TODO Auto-generated method stub
62         
63         switch (v.getId()) {
64         case 1:
65             Toast.makeText(this, "button1 clicked", 1).show();
66             break;
67         case 2:
68             Toast.makeText(this, "button2 clicked", 1).show();
69             break;
70         case 3:
71             Toast.makeText(this, "button3 clicked", 1).show();
72             break;    
73         case 4:
74             Toast.makeText(this, "button4 clicked", 1).show();
75             break;
76         default:
77             break;
78         }    
79     }
80 }

物随心转,境由心造,一切烦恼皆由心生。
原文地址:https://www.cnblogs.com/woodrow2015/p/4547734.html