Android 程式开发:(九)用户界面 —— 9.1 纯编码实现UI

本文介绍了一种不依赖XML布局文件而完全通过Java代码构建UI的方法。这种方法特别适用于需要在运行时动态生成界面的情况,例如根据实际需求动态创建按钮来显示电影院座位。文章详细展示了创建LinearLayout并添加TextView和Button组件的过程。

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

到目前为止,在所有的章节中,我们所看见的UI都是通过XML来实现的。之前也提及过,除了使用XML,也可以使用代码来实现UI界面。这个方式是很有用的,比如你的UI需要在运行时被生成。举个例子,假设你在编写一个“电影票的预定系统”,你的程序使用按钮Buttons去显示每个电影院的座位。在这种情况下,你就会需要依据实际情况去动态地生成UI。

下面的例子将会展示如何通过编码,动态地在Activity中生成UI。

1、创建一个工程:UICode。

2、UICodeActivity.java中的代码。

  1. publicclassUICodeActivityextendsActivity{
  2. /**Calledwhentheactivityisfirstcreated.*/
  3. @Override
  4. publicvoidonCreate(BundlesavedInstanceState){
  5. super.onCreate(savedInstanceState);
  6. //setContentView(R.layout.main);
  7. //视图的参数
  8. LayoutParamsparams=
  9. newLinearLayout.LayoutParams(
  10. LayoutParams.FILL_PARENT,
  11. LayoutParams.WRAP_CONTENT);
  12. //创建布局
  13. LinearLayoutlayout=newLinearLayout(this);
  14. layout.setOrientation(LinearLayout.VERTICAL);
  15. //创建一个TextView
  16. TextViewtv=newTextView(this);
  17. tv.setText("ThisisaTextView");
  18. tv.setLayoutParams(params);
  19. //创建一个Button
  20. Buttonbtn=newButton(this);
  21. btn.setText("ThisisaButton");
  22. btn.setLayoutParams(params);
  23. //向布局中添加TextView
  24. layout.addView(tv);
  25. //向布局中添加Button
  26. layout.addView(btn);
  27. //创建布局使用的属性
  28. LinearLayout.LayoutParamslayoutParam=
  29. newLinearLayout.LayoutParams(
  30. LayoutParams.FILL_PARENT,
  31. LayoutParams.WRAP_CONTENT);
  32. this.addContentView(layout,layoutParam);
  33. }
  34. }

3、按F11调试,效果图如下。


在这个例子中,首先要把setContentView()方法注释掉,目的是不让Activity去加载main.xml中的UI视图。

然后,创建一个LayoutParams对象,这个对象指定了布局的属性。

  1. LayoutParamsparams=
  2. newLinearLayout.LayoutParams(
  3. LayoutParams.FILL_PARENT,
  4. LayoutParams.WRAP_CONTENT);
也要创建一个LinearLayout对象,这个对象包含了activity中的所有视图。
  1. LinearLayoutlayout=newLinearLayout(this);
  2. layout.setOrientation(LinearLayout.VERTICAL);
然后,创建一个TextView和一个Button。
  1. TextViewtv=newTextView(this);
  2. tv.setText("ThisisaTextView");
  3. tv.setLayoutParams(params);
  4. Buttonbtn=newButton(this);
  5. btn.setText("ThisisaButton");
  6. btn.setLayoutParams(params);
然后,把它们加到LinearLayout对象中去。
  1. layout.addView(tv);
  2. layout.addView(btn);
同时,也要创建一个LayoutParams对象,供LinearLayout对象使用。
  1. LinearLayout.LayoutParamslayoutParam=
  2. newLinearLayout.LayoutParams(
  3. LayoutParams.FILL_PARENT,
  4. LayoutParams.WRAP_CONTENT);
最后,把这个LinearLayout对象添加到Activity中去。
  1. this.addContentView(layout,layoutParam);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值