`
oxen
  • 浏览: 106755 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

将UI从代码中解放出来

阅读更多

        做软件开发的,大多都有过频繁修改界面的痛苦经历的,改着改着,一些先知先懒的牛人,就创造了许多应对之道,如大名鼎鼎的MVC模式的应用。

      一如Google宣导的简单美学,Android SDK也为我们考虑了界面修改问题,并解决得很简单。采用了目前比较流行的解决方案,即将界面的描述代码,抽取到外部的XML文件中。

      继续我们的Hello World项目,我们将原来写在MyActivity.java中的界面代码,抽取到外部的XML文件中。首先,在项目中的res/layout目录下,新建mylayout.xml文件,内容如下:


<linearlayout href="http://schemas.android.com/apk/res/android" xmlns:android="”&amp;lt;a">http://schemas.android.com/apk/res/android”
    android:orientation=”vertical”
    android:layout_width=”fill_parent”
    android:layout_height=”fill_parent”
    >
</linearlayout>

      保存,这时,我们打开com.test.R.java看一下,多了一行,R.java文件不能手工修改,这里的内容是由插件自动同步修改的:

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0×7f020000;
    }
    public static final class layout {
        public static final int main=0×7f030000;
        public static final int mylayout=0×7f030001;
    }
    public static final class string {
        public static final int app_name=0×7f040000;
    }
}

然后打开MyActivity.java,修改如下:

super.onCreate(icicle);
setContentView(R.layout.mylayout);

      R.layout.mylayout会到/res/layout中找到mylayout.xml,并解析,最终生成界面。

运行一下吧,吼吼。

分享到:
评论

相关推荐

    C#源代码生成器

    1. 提升开发效率:减少重复劳动,将程序员从机械式的代码编写中解放出来。 2. 降低错误率:自动化生成的代码更少出现人为错误,提高代码质量。 3. 适应性好:通过调整输入数据或模板,能适应不同的项目需求和变化...

    ios代码自动化工具

    总的来说,"ios代码自动化工具"通过自动化处理JSON到模型的转换和UI控件的创建,解放了开发者的手动编码工作,让开发流程变得更加流畅。它体现了现代软件工程中"重用"和"自动化"的核心理念,是iOS开发者必备的利器。...

    UiPathStudioSetup--uipath安装包

    在使用过程中,需要注意的是,UiPath Studio有多个版本,包括社区版(免费)、标准版和企业版,功能和许可权限各不相同。社区版适合初学者和小型项目,而更高级的版本则提供了更多的企业级功能和更好的技术支持。 ...

    FairyGUI & Unity 代码自动生成,附带自定义编辑包

    FairyGUI 一键自动生成代码,解放每次需要自定义获取组件,内置插件UI包,可以自定义修改功能需求。

    动软 代码生成器

    "动软代码生成器"能够智能地识别项目需求,快速生成如数据访问层(DAL)、业务逻辑层(BLL)、表示层(UI)等各个层次的代码,极大地减轻了开发人员的工作负担,让他们可以将更多精力集中在核心业务逻辑和创新功能的...

    K8_PetShop三层代码生成器V1.0 Beat_2011-12-27[K8].rar

    通过自动化的代码生成,开发者可以从繁琐的代码编写中解放出来,集中精力在更重要的业务逻辑和用户体验上,从而提升整个项目的质量和完成速度。同时,由于其遵循三层架构,生成的代码易于维护和扩展,对于大型项目尤...

    cubo-ui:在Angular上使用的UI组件

    解放生成新版本# generate a buildnpm run build:lib# publish new releasecd projects/lib/distnpm publish规范标准该项目使用Cubo编码样式作为代码参考。 任务 从申请npm start :运行所有任务,初始

    基于typescript+vue开发的积木(可视化页面搭建)系统的UI端项目源码+文档说明

    目的是尽可能的解放前端生产力,提高页面模块的复用率,并且充分赋予运营人员根据自身需要搭建、维护、发布页面的能力。 bms-web为积木系统的UI端项目,服务端(bms-server)项目尚未开放,并且,对于前端开发者进行...

    [FormMaking]Vue表单设计器动态生成还原表单项目编译包可直接引入Vue项目中启动(Vue3)

    帮助开发者从传统枯燥的表单代码中解放出来,更多关注业务,快速提高效率,节省研发成本。 目前已经在OA系统、考试系统、报表系统、流程管理等众多项目中得到了广泛使用。 本项目采用 Vue 和 Element 进行页面构建,...

    [FormMaking]Vue表单设计器动态生成还原表单项目编译包可直接引入Vue项目中启动(Vue2)

    帮助开发者从传统枯燥的表单代码中解放出来,更多关注业务,快速提高效率,节省研发成本。 目前已经在OA系统、考试系统、报表系统、流程管理等众多项目中得到了广泛使用。 本项目采用 Vue 和 Element 进行页面构建,...

    解放双手,Android开发应该尝试的UI自动化测试

    Android开发中的UI自动化测试是一种高效且必要的质量保证手段,它能够帮助开发者节省大量手动测试的时间,提升测试覆盖率,确保应用程序在各种用户交互场景下的正确性和稳定性。随着移动应用复杂性的增加,UI自动化...

    手机自动化工具-解放人工,不做重复工作

    总的来说,手机自动化工具通过高效、精确的自动化操作,极大地解放了用户的时间,使得我们可以将精力集中在更重要的事务上。随着技术的发展,这些工具的功能会越来越强大,应用场景也会更加广泛。无论你是普通用户...

    sqllet法撒旦解放了立即离开放到手机里开发离开app

    标题中的"sqllet法撒旦解放了立即离开放到手机里开发离开app"似乎是一种拼写错误或者不清晰的表达,但我们可以将其理解为对SQLite在移动应用开发中使用的一种模糊描述。SQLite是一个轻量级的数据库管理系统,常用于...

    一个提供文章朗读的Chrome插件解放双眼聆听世界

    【标题】"一个提供文章朗读的Chrome插件解放双眼聆听世界" 描述了这个插件的主要功能,即为用户提供了一种将文字内容转化为语音输出的方式,尤其适用于长时间阅读网络文章时,帮助用户减轻视觉疲劳,通过听觉来获取...

    C#多线程解决界面卡死问题的完美解决方案

    在C#编程中,多线程技术是一种关键的性能优化手段,尤其对于处理耗时操作时,能够确保用户界面(UI)的响应性,避免出现界面卡死的现象。本解决方案将深入探讨如何利用C#的多线程特性来解决这个问题。 一、线程基础...

    Rookie-Components:基于Starling的一套简单的UI组件

    2、可视化:Rookie Components 提供强大的可视化编辑工具Rookie Editor,界面制作可直接在编辑器中直观设置,实现UI与逻辑分离,解放程序员UI制作痛苦; 3、高性能:Rookie Components 原本设计以简单、高性能为目标...

    CodeSmith三层模板

    5. **提高开发效率**:使用CodeSmith三层模板,开发者可以从繁琐的重复性编码工作中解放出来,更多地关注于解决业务问题和创新。这不仅节约了时间,也有助于减少潜在的错误,提高代码质量。 6. **代码一致性**:...

    swing autotest tools

    Swing自动测试工具是Java开发领域中用于自动化测试Swing应用程序的框架和库。这些工具旨在帮助开发者提高测试效率,确保Swing应用的功能正确性和稳定性。Swing是Java的一个图形用户界面(GUI)工具包,广泛应用于...

    Android自定义注解

    传统的Android应用开发过程中,我们经常需要通过`findViewById`方法来查找并绑定UI元素,这既繁琐又容易出错。自定义注解则可以有效地解决这一问题,使得我们可以优雅地实现视图注入。 注解(Annotation)是Java...

    电子书,vb编写

    描述中提到的“自动滚动”功能,意味着电子书可以像传统的电子滚动屏一样,自动逐行或逐页展示内容,解放用户的双手,让阅读变得更加轻松。实现这一功能可能需要用到VB中的Timer控件,配合文本框或标签控件来动态...

Global site tag (gtag.js) - Google Analytics