`

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);

分享到:
评论

相关推荐

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

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

    Mcam9.1程式单插件.rar

    2021年6月最新发布、支持Excel和WPS使用、支持多模板切换、支持用户自定义模板、采用最新出单技术、支持多刀路合并、支持多规则刀路合并功能

    Mastercam9.1自动程式单插件

    全网最强的Mastercam9.1程序单

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

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

    android开发入门与实战(下)

    11.2.1 界面设计始终是第一位——实现UI 11.2.2 必备的动力源泉——数据操作和存储 11.2.3 华丽转身——实现多页面跳转 11.2.4 始终为用户做好服务——增加Service 11.2.5 细节决定成败——完善应用细节 11.3 成功就...

    android开发入门与实战(上)

    11.2.1 界面设计始终是第一位——实现UI 11.2.2 必备的动力源泉——数据操作和存储 11.2.3 华丽转身——实现多页面跳转 11.2.4 始终为用户做好服务——增加Service 11.2.5 细节决定成败——完善应用细节 11.3 成功就...

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

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

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

    《Google Android开发入门与实战》.pdf

    11.2.1 界面设计始终是第一位——实现ui 203 11.2.2 必备的动力源泉——数据操作和存储 203 11.2.3 华丽转身——实现多页面跳转 203 11.2.4 始终为用户做好服务——增加service 203 11.2.5 细节决定...

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

    这是Android开发与应用,原书配套的课件,作者张荣,目录如下。 第1章 Android简介 1.1 手机操作系统 1.2 Android起源 1.3 Android特征 1.4 Android体系结构 1.4.1 应用层 1.4.2 应用框架层 1.4.3 ...

    MasterCAM9.1自动程式单

    MasterCAM9.1自动程式单

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

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

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

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

    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技术内幕.系统卷(扫描版)

    《android技术内幕:系统卷》 前言 第1章 准备工作 /1 ...9.1 android核心库简介 /528 9.2 android系统api /529 9.2.1 android包 /529 9.2.2 android资源包 /529 9.2.3 apicheck机制 /529 9.3 小结 /532 后记 /533

    SCDM脚本开发入门教程

    该教程主要介绍SCDM脚本开发技术,适合有Python代码开发和SCDM使用基础的人员学习使用 1. SCDM 概述 2. 第一个 Hello,World 程序 3. SCDM 脚本介绍 4. 脚本录制 5. Python 脚本语言 6. 脚本开发可以做什么 7. 如何...

    Google.Android开发入门与实战

    11.2.1 界面设计始终是第一位——实现UI 11.2.2 必备的动力源泉——数据操作和存储 11.2.3 华丽转身——实现多页面跳转 11.2.4 始终为用户做好服务——增加Service 11.2.5 细节决定成败——完善应用细节 11.3 成功就...

Global site tag (gtag.js) - Google Analytics