到目前为止,在所有的章节中,我们所看见的UI都是通过XML来实现的。之前也提及过,除了使用XML,也可以使用代码来实现UI界面。这个方式是很有用的,比如你的UI需要在运行时被生成。举个例子,假设你在编写一个“电影票的预定系统”,你的程序使用按钮Buttons去显示每个电影院的座位。在这种情况下,你就会需要依据实际情况去动态地生成UI。
下面的例子将会展示如何通过编码,动态地在Activity中生成UI。
1、创建一个工程:UICode。
2、UICodeActivity.java中的代码。
- publicclassUICodeActivityextendsActivity{
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- LayoutParamsparams=
- newLinearLayout.LayoutParams(
- LayoutParams.FILL_PARENT,
- LayoutParams.WRAP_CONTENT);
- LinearLayoutlayout=newLinearLayout(this);
- layout.setOrientation(LinearLayout.VERTICAL);
- TextViewtv=newTextView(this);
- tv.setText("ThisisaTextView");
- tv.setLayoutParams(params);
- Buttonbtn=newButton(this);
- btn.setText("ThisisaButton");
- btn.setLayoutParams(params);
- layout.addView(tv);
- layout.addView(btn);
- LinearLayout.LayoutParamslayoutParam=
- newLinearLayout.LayoutParams(
- LayoutParams.FILL_PARENT,
- LayoutParams.WRAP_CONTENT);
- this.addContentView(layout,layoutParam);
- }
- }
3、按F11调试,效果图如下。
在这个例子中,首先要把setContentView()方法注释掉,目的是不让Activity去加载main.xml中的UI视图。
然后,创建一个LayoutParams对象,这个对象指定了布局的属性。
- LayoutParamsparams=
- newLinearLayout.LayoutParams(
- LayoutParams.FILL_PARENT,
- LayoutParams.WRAP_CONTENT);
也要创建一个LinearLayout对象,这个对象包含了activity中的所有视图。
- LinearLayoutlayout=newLinearLayout(this);
- layout.setOrientation(LinearLayout.VERTICAL);
然后,创建一个TextView和一个Button。
- TextViewtv=newTextView(this);
- tv.setText("ThisisaTextView");
- tv.setLayoutParams(params);
- Buttonbtn=newButton(this);
- btn.setText("ThisisaButton");
- btn.setLayoutParams(params);
然后,把它们加到LinearLayout对象中去。
- layout.addView(tv);
- layout.addView(btn);
同时,也要创建一个LayoutParams对象,供LinearLayout对象使用。
- LinearLayout.LayoutParamslayoutParam=
- newLinearLayout.LayoutParams(
- LayoutParams.FILL_PARENT,
- LayoutParams.WRAP_CONTENT);
最后,把这个LinearLayout对象添加到Activity中去。
- this.addContentView(layout,layoutParam);
分享到:
相关推荐
《Mcam9.1程式单插件: CAM编程效率的新里程碑》 在计算机辅助制造(CAM)领域,技术的不断革新为制造业带来了前所未有的便捷。2021年6月,Mcam9.1程式单插件的发布,成为了该领域中值得瞩目的新里程碑。这款插件...
Mastercam是一款广泛...总之,Mastercam9.1自动程式单插件是提高Mastercam9.1用户编程效率的利器,它通过自动化和智能化的方式,帮助工程师快速生成精准的程式单,从而更好地服务于制造业的数字化和自动化生产流程。
《ENFOLD V4.8.9.1:2022年度响应式多功能WordPress主题详解》 在当今数字化时代,网站设计与开发已经成为企业、个人及组织展示自我、拓展业务的重要工具。WordPress作为全球最受欢迎的开源内容管理系统,拥有丰富...
在实际应用中,开发者和研究人员可以利用HM9.1来验证自己的HEVC编码和解码算法,或者作为基础开发新的编码工具。这个参考软件可以帮助理解HEVC标准的细节,同时提供了一个测试和优化编码性能的平台。 总的来说,...
地形测量,地形图制图相关。南方Cass软件辅助,Cass9.1编码表(图式快捷输入编码)。
### Android开发编程从入门到精通——Android程序员必备 #### 一、Android简介 **1.1 什么是Android** Android是一种基于Linux内核的操作系统,主要应用于移动设备如智能手机和平板电脑。它由谷歌公司领导的开放...
第1章 新一代的王者——android概览 1 1.1 智能手机市场现状 1 1.1.1 五大智能手机操作系统 1 1.1.2 智能手机市场的新星 2 1.2 android平台的特点及未来的趋势 3 1.2.1 全新理念带来的体验风暴 3 ...
《MyEclipse 9.1:打造高效J2EE与Android开发环境》 MyEclipse 9.1是一款强大的集成开发环境(IDE),专为Java EE和Android应用程序开发设计。对于那些热衷于构建企业级应用和移动应用的开发者而言,它是一个不可或...
赠送jar包:asm-9.1.jar; 赠送原API文档:asm-9.1-javadoc.jar; 赠送源代码:asm-9.1-sources.jar; 赠送Maven依赖信息文件:asm-9.1.pom; 包含翻译后的API文档:asm-9.1-javadoc-API文档-中文(简体)版.zip; ...
4.1 用户界面开发详解 4.1.1 用户界面简介 4.1.2 事件处理 4.2 常用控件应用 4.2.1 文本框(Textiew) 4.2.2 列表(ListView) 4.2.3 提示(T0ast) 4.2.4 编辑框(EditText) 4.2.5 单项选择(RadioGroup、RadioButton 4.2.6...
MasterCAM 9.1自动程式单的使用,需要用户对CNC加工原理有基本了解,并掌握一定的CAD/CAM技能。通过学习和实践,用户能够充分利用这一工具提升生产效率,降低生产成本,实现精密和高效的CNC加工。
在本教程中,我们将深入探讨“iOS 9.1应用开发基础”,这是一门适合初学者的课程,旨在帮助你掌握Apple的移动操作系统上的应用程序构建技术。iOS 9.1是苹果公司为iPhone、iPad以及iPod touch设备推出的一个重要版本...
cass9.1 免狗.zip
CASS9.1内部编码是其绘图系统的核心组成部分,主要围绕着WORK.DEF这个符号定义文件进行工作。WORK.DEF文件中包含了各种地物符号的详细信息,这些信息包括了符号的图层、类别、参数以及说明,使得CASS9.0能够根据这些...
### Android_UI初级开发知识点详解 #### 一、Android UI概要 **1.1 Android UI简介** - **定义**: UI(User Interface)即用户界面,是人与设备间信息交流的媒介。对于Android而言,良好的UI设计不仅能提升用户体验...
这是Android开发与应用,原书配套的课件,作者张荣,目录如下。 第1章 Android简介 1.1 手机操作系统 1.2 Android起源 1.3 Android特征 1.4 Android体系结构 1.4.1 应用层 1.4.2 应用框架层 1.4.3 ...
Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...
Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...
9.1 Android应用程序的核心——Intent 9.1.1 Intent基础 9.1.2 用Intent启动一个新的Activity 9.1.3 Intent详细讲解 9.1.4 Android解析Intent实现 9.2 用广播告诉你——利用Intent来广播(BroadCast)事件 9.2.1 实现...