`

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

 
阅读更多

到目前为止,在所有的章节中,我们所看见的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);

分享到:
评论

相关推荐

    Mcam9.1程式单插件.rar

    《Mcam9.1程式单插件: CAM编程效率的新里程碑》 在计算机辅助制造(CAM)领域,技术的不断革新为制造业带来了前所未有的便捷。2021年6月,Mcam9.1程式单插件的发布,成为了该领域中值得瞩目的新里程碑。这款插件...

    Mastercam9.1自动程式单插件

    Mastercam是一款广泛...总之,Mastercam9.1自动程式单插件是提高Mastercam9.1用户编程效率的利器,它通过自动化和智能化的方式,帮助工程师快速生成精准的程式单,从而更好地服务于制造业的数字化和自动化生产流程。

    2022最新版:ENFOLD V4.8.9.1主题:响应式多功能WordPress主题.rar

    《ENFOLD V4.8.9.1:2022年度响应式多功能WordPress主题详解》 在当今数字化时代,网站设计与开发已经成为企业、个人及组织展示自我、拓展业务的重要工具。WordPress作为全球最受欢迎的开源内容管理系统,拥有丰富...

    HEVC编解码器参考代码HM9.1

    在实际应用中,开发者和研究人员可以利用HM9.1来验证自己的HEVC编码和解码算法,或者作为基础开发新的编码工具。这个参考软件可以帮助理解HEVC标准的细节,同时提供了一个测试和优化编码性能的平台。 总的来说,...

    cass9.1编码表(图式快捷输入编码).xls

    地形测量,地形图制图相关。南方Cass软件辅助,Cass9.1编码表(图式快捷输入编码)。

    Android开发编程从入门到精通——Android程序员必备

    ### Android开发编程从入门到精通——Android程序员必备 #### 一、Android简介 **1.1 什么是Android** Android是一种基于Linux内核的操作系统,主要应用于移动设备如智能手机和平板电脑。它由谷歌公司领导的开放...

    android开发入门教程

    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 实现...

    Android 3D游戏开发技术宝典-OpenGL ES 2.0 (吴亚峰) 源代码

    第1章 新一代的王者——android概览 1 1.1 智能手机市场现状 1 1.1.1 五大智能手机操作系统 1 1.1.2 智能手机市场的新星 2 1.2 android平台的特点及未来的趋势 3 1.2.1 全新理念带来的体验风暴 3 ...

    基于FPGA的DDS原理信号发生器设计:利用Quartus II 9.1与Verilog HDL实现频率幅度可调的正弦波、方波、锯齿波及三角波生成器,包含代码与原理图 ,基于FPGA的DDS原理信号发

    基于FPGA的DDS原理信号发生器设计:利用Quartus II 9.1与Verilog HDL实现频率幅度可调的正弦波、方波、锯齿波及三角波生成器,包含代码与原理图。,基于FPGA的DDS原理信号发生器设计 quartusII 9.1平台 Verilog HDL...

    Myeclipse9.1

    《MyEclipse 9.1:打造高效J2EE与Android开发环境》 MyEclipse 9.1是一款强大的集成开发环境(IDE),专为Java EE和Android应用程序开发设计。对于那些热衷于构建企业级应用和移动应用的开发者而言,它是一个不可或...

    android开发揭秘PDF

    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...

    asm-9.1-API文档-中文版.zip

    赠送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; ...

    MasterCAM9.1自动程式单

    MasterCAM 9.1自动程式单的使用,需要用户对CNC加工原理有基本了解,并掌握一定的CAD/CAM技能。通过学习和实践,用户能够充分利用这一工具提升生产效率,降低生产成本,实现精密和高效的CNC加工。

    iOS 9.1应用开发基础教程

    在本教程中,我们将深入探讨“iOS 9.1应用开发基础”,这是一门适合初学者的课程,旨在帮助你掌握Apple的移动操作系统上的应用程序构建技术。iOS 9.1是苹果公司为iPhone、iPad以及iPod touch设备推出的一个重要版本...

    cass9.1 免狗.zip

    cass9.1 免狗.zip

    cass9.1内部编码

    CASS9.1内部编码是其绘图系统的核心组成部分,主要围绕着WORK.DEF这个符号定义文件进行工作。WORK.DEF文件中包含了各种地物符号的详细信息,这些信息包括了符号的图层、类别、参数以及说明,使得CASS9.0能够根据这些...

    Android_UI初级开发

    ### Android_UI初级开发知识点详解 #### 一、Android UI概要 **1.1 Android UI简介** - **定义**: UI(User Interface)即用户界面,是人与设备间信息交流的媒介。对于Android而言,良好的UI设计不仅能提升用户体验...

    Android开发与应用——张荣,原书配套课件

    这是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开发范例大全(PDF高清完整版1)(4-1)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

Global site tag (gtag.js) - Google Analytics