`
oxen
  • 浏览: 105986 次
  • 性别: 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,并解析,最终生成界面。

运行一下吧,吼吼。

分享到:
评论

相关推荐

    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 进行页面构建,...

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

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

    ​Power Automate Desktop(Excel,桌面,WEB 自动化)教程及实战案例,网络收集

    ​Power Automate Desktop 是微软最新推出的 RPA 产品,隶属于 Power Platform 低代码平台中的 Power Automate 流程自动化产品旗下,Win10 用户可以免费通过 Power Automate Desktop 创建 RPA 流程,从而解放双手...

    x-studio365软件用户文档Rev2.17

    具有的完整2D粒子编辑功能,场景(UI)编辑功能,屏幕适配预览功能(让手动适配问题彻底解放)。支持Unity32/64(slua, ulua/tolua, xlua)和Cococ2d-x Lua调试。支持类似SublimeText, VSCode等现代代码编辑的多种语言...

    x-studio365_10.0.3300.700

    具有的完整2D粒子编辑功能,场景(UI)编辑功能,屏幕适配预览功能(让手动适配问题彻底解放)。支持Unity32/64(slua, ulua/tolua, xlua)和Cococ2d-x Lua调试。支持类似SublimeText, VSCode等现代代码编辑的多种语言...

    表单的验证

    AJAX开发人员将用户从Web应用的负载中解放出来;小心地利用AJAX提供的丰富接口,不久桌面开发人员会发现AJAX是他们的方向。  四、几种工具和技术  随着AJAX迅速地引人注目起来,我想开发人员对这种技术的期待...

    x-studio365(游戏引擎开发工具)v10.0.5900.190官方安装免费版

    具有的完整2D粒子编辑功能,场景(UI)编辑功能,屏幕适配预览功能(让手动适配问题彻底解放)。同时支持调试cococ2d-x lua游戏。 cocos2d-x引擎版本3.13, spine运行库版本3.4,暂不支持帧动画编辑,永久免费,持续...

    Pyhthon+unittest+BSTestRunner+DingtalkChatbot执行自动化测试,生成测试报告并发送钉钉机器人

    自动化测试中,不管是UI自动化,还是接口自动化,最终会执行测试用例执行文件,如命名为:run_test_case.py的文件,现整理一下该文件的通用代码实现,也可以根据自己的实际需要进行增减 本文将呈现的是:用Pyhthon+...

    level1~2题库-考试通.xlsx

    使用RPA更新此类文件可以使采购专业人员从简单的任务中解放出来去专注于管理供应商关系。 行业特定流程 根据我们的经验和研究,包括保险和BPO在内的金融服务似乎是RPA技术的最大用户。 银行业 39-了解您...

    watchdogs:关注网络世界的变化,一切都可以RSS

    密切关注网络世界的变化。 比如news on the web portal post articles / news on the web portal / server api health / binge-watching / steam price fluctuation / github ... 从浏览器上重复刷新页面中解放双手。

    RapidWebDev框架源码

    它能将开发人员从一些繁琐的事情(比如:调整页面CSS文件,编写大量的HTML/ASP.NET代码,处理大量的UI逻辑,为页面设置数据绑定,处理分页及排序,统一页面风格和操作规范等)中解放出来,从而专注于商业逻辑,软件...

    高级软件架构师复习提纲

    将源从大量复制负载中解放出来/添加多个目标不影响源 G:CET能够相对独立 44、下面哪些应用可以被称为Smart:A:能够利用本地资源 A:智能安装和更新 A:Connected A:对各种客户端设备支持性 45、异常可以分为:/业务...

    C++MFC教程

    对于初学者:应该选择一些内容比较全面的书籍,并且书籍中的内容应该以合理的方式安排,在使用该书时可以达到循序渐进的效果,书中的代码要有详细的讲解。尽量买翻译的书,因为这些书一般都比较易懂,而且语言比较...

    treehole:徐〜这是秘密!

    treehole觊觎Vue已久,尝试着用它写了个简单页面,确实好用,数据双向绑定、列表循环、单页路由等功能简单易上手,解放了很大工作量,希望后面能进一步深入学习、熟练使用,让它成为我的开发好帮手,哈哈哈~这是一个...

    Java自动化测试系列[v1.0.0][PO设计模式]

    当我们以脚本的形式编写了大量的自动化测试代码后,很容易发现代码可读性太差了、任何一个测试脚本几乎毫无扩展能力或者说扩展起来只能修改边边角角、一旦被测系统的UI层发生变化对于测试代码的修改来说简直就是灾难...

    BootstrapTable与KnockoutJS相结合实现增删改查功能【二】

    Bootstrap是一个前端框架,解放Web开发者的好东东,展现出的UI非常高端大气上档次,理论上可以不用写一行css。只要在标签中加上合适的属性即可。 KnockoutJS是一个JavaScript实现的MVVM框架。非常棒。比如列表数据项...

Global site tag (gtag.js) - Google Analytics