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 }
物随心转,境由心造,一切烦恼皆由心生。