AndroidStudio 模板编写

2 篇文章 0 订阅
订阅专栏

效果

template

- 学习LoginActivity模板

首先我们打开studio安装目录找到系统原生模板,D:\Program Files\Android\studio\plugins\android\lib\templates\activities 这个是我的安装目录,在这里我们可以看到很多原生模板代码可以参考及借鉴,下面我们举例将LoginActivitysublimeText打开,如果本地没有请自行下载
LoginActivity原生系统模板
在这里我们可以看到root文件下存放的是ressrc两个文件夹对应的就是我们在开发时的目录这里不过多解释,

  1. global:里面存放的是全局变量
  2. recipe:这个文件会去获取template文件的id然后去创建相对应模板
  3. template:给使用模板用户所看到的页面
- 自己编写一个简单mvp模板
  • 首先我们去创建一个模板名称为mvp,接着打开template文件我们设置下namedescription模板
<template
        format="5"
        revision="1"
        name="Mvp"
        description="第一个插件模板的诞生之路1">

    <category value="Activity"/>
    <formfactor value="Mobile"/>
</template>

这时在通过studio工具查看模板就会发现刚才自定义模板已经生成了可以在studio->new->Activity中查看到。

  • 下面我们创建MvpLoginActivity的模板,打开template.xml
    template
    <parameter
            id="activityClass"
            name="Activity Name"
            type="string"
            constraints="class|nonempty"
            help="hexl 测试模板 Activity"/>
  • 打开recipe.xml.ftl文件
<#-- 创建一个实例
    from:从指定路径下引入该模板文件,相关模板代码都将在该文件中创建
    to:输出到指定的目录
       mvpPath、 相当于变量,该变量在global文件中进行定义
 -->
        <instantiate from="root\src\app_package\LoginActivity.java.ftl"
                     to="${mvpPath}ui/activity/${activityClass}Activity.java"/>

    <#-- 打开创建的文件 -->
        <open file="${mvpPath}ui/activity/${activityClass}Activity.java"/>

recipe
在这里我们看到有两个变量分别是mvpPathactivityClass两个变量,mvpPathglobals.xml.ftl定义global1

    <global id="mvpPath" type="string" value="${escapeXmlAttribute(srcOut)}/mvp/"/>

activityClass就是引用template.xml定义的activity ID

  • PresenterModel 都是一样的代码可以创建出来,这里不再展示章尾会给出源码
- 类名与Layout联动
- Activity和Layout名称联动

我们要实现输入类名时布局名称也随之联动,主要看下suggest这个参数
layout

    <!-- 创建布局 -->
    <parameter
            id="layoutActivityClass"
            name="Activity Layout"
            constraints="layout|nonempty"
            default="activity_main"
            suggest="${activityToLayout(activityClass)}"
            help="hexl 测试模板 Layout"/>
- Fragment和Layout名称联动

fragment

    <!-- 创建Fragment -->
    <parameter
            id="fragmentClass"
            name="Fragment Name"
            type="string"
            constraints="class|nonempty"
            help="hexl 测试模板 Fragment"/>

fragmentLayout

    <!-- 创建布局
        Fragment 布局名称联动与Activity 不一样,需要特别注意
    -->
    <parameter
            id="layoutFragmentClass"
            name="Fragment Layout"
            constraints="layout|nonempty"
            default="fragment_main"
            suggest="fragment_${classToResource(fragmentClass)}"
            help="hexl 测试模板 Layout"/>
- Adapter和itemLayout名称联动

adapter

    <parameter
            id="adapterClass"
            name="Adapter Name"
            type="string"
            constraints="class|nonempty"
            help="Adapter 将被输出到 package.adapter 下"/>

item

    <!--
        adapter item 名称联动与fragment和activity都不一样
        规范是 item_$小写adapterClass
    -->
    <parameter
            id="adapterLayoutClass"
            name="Adapter Layout Name"
            type="string"
            suggest="item_${extractLetters(commonName?lower_case)}"
            constraints="class|nonempty"
            visibility="needAdapterLayout"
            help="AdapterLayout 布局文件将被输出到 res/layouts/items/ 下"/>

这里用到了commonName,所以我们要在template定义出来
commonName

    <!-- 公共名称 -->
    <parameter
            id="commonName"
            name="Common Name"
            type="string"
            constraints="nonempty"
            help="公共名称,作为所有页面的前缀"
            default="Hexl"/>

adapter

<instantiate from="root/src/app_package/LoginAdapter.java.ftl"
                     to="${mvpPath}/adapter/${commonName}Adapter.java"/>

创建layout布局文件
adapterLayout

<instantiate from="root/res/layout/simple.xml.ftl"
                     to="${escapeXmlAttribute(resOut)}/layout/${adapterLayoutClass}.xml"/>

这里引入了一个simple.xml.ftl文件其实很简单,只要在root->res->layout目录下进行声明就ok了
simple

- 生成不同级别目录

例如我们将adapter放到与mvp同一级别目录下,而不是在mvp目录下我们该如何进行骚操作呢?
首先我们在global.xml.ftl文件中定义个变量global

    <global id="adapterPath" type="string" value="${escapeXmlAttribute(srcOut)}/adapter/"/>

然后修改recipe.xml.ftl文件输出的目录

<instantiate from="root/src/app_package/LoginAdapter.java.ftl"
                     to="${adapterPath}/${commonName}Adapter.java"/>

下载源码的地址:

GitHub地址
码云地址

Android Studio自定义模板,教你一种更清晰的Android架构
m0_63174811的博客
03-18 826
*其实上面说了这么多,钱是永远赚不完的,在这个知识付费的时代,知识技能提升才是是根本!我作为一名8年的高级工程师,知识技能已经学习的差不多。**在看这篇文章的可能有刚刚入门,刚刚开始工作,或者大佬级人物。像刚刚开始学Android开发小白想要快速提升自己,最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以这里分享一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。这么重要的事情说三遍啦!直达领取链接:点击链接免费领取【
AndroidStudio模板简介
CZH
09-04 3325
AndroidStudio模板简介概述很多时候Android开发者会觉得每天都在敲一些重复的代码非常枯燥。findViewById、setVisibility、判断是否为空、instanceof、for循环、intent跳转,看到这些东西就想吐了有木有!还好AndroidStudio给开发者提供了一套机制,让我们不需要一字一句的重复敲打这些代码,这就是模板。顾名思义,模板就是事先制定一些规则,我们只
Android 使用模板生成Word文档的demo,最新版在Android studio中运行
03-15
Android 使用模板生成Word文档,支持手机直接查看word,真的很好用,如果有问题可以联系我
最全Android Studio自定义模板,2024年最新Android高级工程师进阶学习
最新发布
2301_82243814的博客
05-11 804
简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。
Android Studio 配置:自定义头部代码注释及添加模版
Hunter2916的博客
03-19 1518
1、实现效果/*** 版权:xx公司 版权所有* 版本:1.0* 创建日期:2018/6/14* 描述:MainActivity*/2、实现步骤依次操作File -> Settings ->Editor ->File and Code Templates,在详细展示窗口点击includes选项卡,找到FileHeader点击,在编辑窗口输入自定义的注释模板即可。
转载:AndroidStudio自带代码模板快速完成设置
一个IT人的技术成长历程。创造未来的行为就发生在今天,没有明天的目标,今天的行动就是重复昨天的事情。
01-11 501
没有统一的翻译,代码模板、热键模板、动态模板随便叫哪个都行我这里给出几个比较常用的自定义模板,如果你觉得有比较好的可以抽取出来的,欢迎留言。
Android Studio自定义注释模板
qq_54087555的博客
09-02 2274
Android自定义注释模板
android studio模板开发,Android Studio Activity模版开发
weixin_42155721的博客
05-27 231
为什么要使用模版开发在开发之中,我们总会遇到一些比较通用的模块,比如启动页,登陆功能,网络请求,MVP模式等等。有些功能甚至需要重复使用多次,我们通常的做法是把之前的模块拷贝过来,修改名字,再修改内容。如果使用了代码模板的话,会减少很多重复的工作。我们经常使用的系统的模版的结构如下图所示。如果你想自定义一个Activity模版或其他类模版,你可以把这2个文件拷贝过去,修改一下就行了。 这种方式稍微...
Android Studio自定义activity模板,看懂这些帮你轻松解决就业问题
m0_64319112的博客
11-26 559
template_blank_activity.png <template> 中的 name 属性,对应新建 Activity 时显示的名字 <category> 对应New的类别为Activity 上面parameter标签中部分属性如下: id :唯一标识,最终通过该属性的值,获取用户输入值(文本框内容,是否选中) name:界面上的类似label的提示语 type : 输入值类型 constraints:填写值的约束 suggest:建议值,
Android Studio自定义模板 写页面竟然可以如此轻松
dawuafang
06-12 959
本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发。 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/51635533; 本文出自:【张鸿洋的博客】 1、概述 上一篇文章,已经初步对Android Studio模板有了初步的介绍与使用,以及一些开源模板的推荐:...
Android Studio 自定义模板
FritzXu的博客
12-23 421
前言 在开发 Android 项目的过程中,难免会遇到重复编写同一段逻辑的代码的情况,就拿目前比较流行的 MVP 模式来举例好了,要实现一个页面的 MVP 开发,我们需要编写以下的类: 一个 MVP 的契约接口,里面有一个 view 层接口 和 P 层的接口(或抽象类) 对应的view 层接口的实现类 对应的P 层接口的实现类 对应的 model 层 如果当前页面需要使用 RecyclerVi...
Android Studio 根据模板自动生成
zrct00的博客
09-16 270
下载地址: 插件功能: 根据模板自动生成文件(可包含文件夹) 根据xml自动生成findViewById(包括在适配器中),解决databinding等apt工具造成编译错误误导 功能会根据我工作的需要继续更新 自动生成模板: 首先,在android studio准备好模板文件,具体格式如下: 在项目根目录下新建文件夹template template文件夹下再新建文件夹,取名为你的模板名称,比如我创建了2个模板,分别叫-DatasAdapter和mvvm 在需要生成文件的地方,右键->
android studio (as)主题theme
10-08
ladies night2.jar ,cobalt.jar ,visual studio.jar, monokai sublime text3.jar
AndroidStudioTemplate, 简单的Android Studio 模板.zip
10-10
AndroidStudioTemplate, 简单的Android Studio 模板 Android Studio 模板一个用于Android开发的Android Studio 模板的。要使用这些模板,你需要 Android Studio 。将适当的文件夹复制到 <androidStudio-folder>
Android Studio模板开发
04-19
Android Studio模板创建(包含java和Kotlin语言) 博客地址:https://blog.csdn.net/u010987039/article/details/80002962
Android项目模板
07-16
Android项目模板 -01需求文档 -02框架设计文档 -03详细设计文档 -04code -05测试文档 -06进度控制文档 -07项目答辩 Android4.0界面设计规范(中文完整版).pdf Android编码规范_公司版.doc
MVPArmsTemplate,android studio创建mvparms页面的模板.zip
09-26
android studio创建mvparms和mvpart页面的模板
Android Studio 课程表功能
12-23
基于Android Studio开发的课程表APP,现有功能: 1、获取四川大学教务处在校学生课程表。 2、四川大学教务处比赛信息、学院信息、讲座信息等。 3、日程表功能,可以新建、删除日程提醒。 4、查询四川大学课程信息 ...
Android studio将 Web项目打包成apk
04-17
首先,需要在 Android Studio创建一个新的项目,选择“Empty Activity”模板,然后填写项目名称、包名、SAVE Location 等信息,最后点击“Finish”按钮创建项目。 2. 创建 assets 文件夹 在项目目录下创建一个...
android studio编写计算器
06-28
1. 创建一个新的Android Studio项目,选择Empty Activity模板。 2. 在activity_main.xml文件中添加一个TextView和多个Button,用于显示计算结果和输入数字和运算符。 3. 在MainActivity.java文件中定义TextView和...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 使用Kotlin编写网络基本网络请求 4939
  • 2017年总结,2018新开始 2933
  • 2018年终总结,展望2019 2886
  • HttpURLConnection获取网络读片,读取本地缓存图片 1940
  • 巧用dimens适配多个分辨率 1868

分类专栏

  • 插件 2篇
  • kotlin 4篇
  • 即时通讯 4篇
  • 年终总结 1篇
  • VIew 1篇

最新评论

  • 2018年终总结,展望2019

    九月茅桃: 言简意赅,加油,2019会更加美好。

  • 2018年终总结,展望2019

    Kevin's life: 祝福!

  • 2018年终总结,展望2019

    nanphonfy: 楼主的总结挺简洁清晰,2019加油。

  • 2017年总结,2018新开始

    orangleliu: 多谢

  • 2017年总结,2018新开始

    埋心。 回复 orangleliu: 还好。年后好找些。

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 学习Kodein(二)
  • 学习Kodein(一)
  • RecyclerViw分割线
2019年5篇
2018年6篇
2017年1篇
2016年5篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司昆明SEO按效果付费廊坊网站推广工具报价永州品牌网站设计湘西网站推广方案报价邯郸网站seo优化丹东至尊标王公司伊犁网站优化推广公司邢台网站改版赣州百度seo多少钱贺州百度竞价包年推广哪家好扬州品牌网站设计报价莱芜网站优化推广哪家好新乡关键词按天计费多少钱喀什建网站报价佛山优化报价池州关键词排名宿迁SEO按天计费推荐仙桃英文网站建设推荐昆明网站建设价格兴安盟关键词按天计费推荐天津百搜标王哪家好惠州SEO按天扣费多少钱朝阳百搜标王推荐德阳外贸网站建设报价百色百度竞价报价玉林建网站推荐垦利网站优化按天扣费哪家好白银关键词按天计费价格荆门网站关键词优化报价渭南百度网站优化公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化