021_03布局之代码实现

本文介绍了一种使用Java代码而非XML文件来布局Android应用程序的方法,这种方法可以提高代码安全性及执行效率,尤其适用于复杂界面的创建。文章通过示例代码详细展示了如何用Java创建LinearLayout和Button组件,并设置其属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   一般情况下对于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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值