android studio创建文件,如何在Android Studio中创建File Templates

标签: File Template Android Studio

我发现一个可以让写程序变得简单的方法,那就是自定义文件模板(Custom File Templates).那么什么是File Templates呢?说白了,就是一个已经包含一部分代码的源文件

如何创建File Templates

首先,找到创建File Template的位置,依次打开File ==> Setting ==> Editor ==> File and Code Templates

c0c509223e29?nomobile=yes

File Templates Settings

之后点击 +号添加一个File Template,这里需要填写 File Template的名称和代码。在本次案例中,我们将创建一个实现了部分方法的RecyclerViewAdapter的File Template。因此就取名叫RecyclerViewAdapter

c0c509223e29?nomobile=yes

RecyclerViewAdapter

之后你就可以在下方的代码区域粘贴或者编写你的模板代码了。这里有几个预置的变量可以使用,当文件被创建的时候,这些预置的变量将会被 将会被对应的值替代,变量如下:

${NAME} 选择的文件的文件名

${PACKAGE_NAME} 包名

${DATE} 系统当前的时间

当然,你也可以自定义变量,在本案例中,我们需要提供ViewHolder类和集合List的类型,所以自定义变量分别为${VIEWHOLDER_CLASS}和${ITEM_CLASS}

那么现在就来编写用于创建模板的代码,代码如下:

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

import android.content.Context;

import android.support.v7.widget.RecyclerView;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import java.util.List;

#parse("File Header.java")

public class ${NAME} extends RecyclerView.Adapter {

private final Context context;

private List items;

public ${NAME}(List items, Context context) {

this.items = items;

this.context = context;

}

@Override

public ${VIEWHOLDER_CLASS} onCreateViewHolder(ViewGroup parent, int viewType) {

View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.${LAYOUT_RES_ID}, parent, false);

return new ${VIEWHOLDER_CLASS}(v);

}

@Override

public void onBindViewHolder(${VIEWHOLDER_CLASS} holder, int position){

${ITEM_CLASS} item = items.get(position);

//TODO Fill in your logic for binding the view.

}

@Override

public int getItemCount() {

if (items == null){

return 0;

}

return items.size();

}

}

当你想要使用这个文件模板时,会提示你提供相关变量的值,比如${VIEWHOLDER_CLASS}和${ITEM_CLASS},填写的值会自动替换对应的变量,非常的方便。

要使用已经定义好的File Template,只需要选中要创建位置的文件夹,然后点击鼠标右键,再点“New”,你就可以在列表中看到刚创建的File Template的名字

c0c509223e29?nomobile=yes

Selecting custom template

点击RecyclerViewAdapter后填写相关变量的值

c0c509223e29?nomobile=yes

Fill In Custom Template Variables

填写完后点击"OK",之后你就可以看到自动生成的代码了

c0c509223e29?nomobile=yes

Generated Class From Template

这样,今后我要实现一个RecyclerView的Adapter时,就不用再去写那么多代码了

如果你有一些比较好的代码模板,也可以分享给我哦 *_*,我的博客: http://www.bit100.com

@author zhongzilu

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

odoo 中多币种处理(外币处理)

2019独角兽企业重金招聘Python工程师标准>>> 1. odoo多币种处理 http://www.cnblogs.com/godzone/archive/2012/11/05/2754436.html 2. OpenERP的价格表(Pricelist)机制: http://www.chinamaker.net/html/2011/study_1123/78.html 3. odoo …

h5 android数字键盘,【笔记】移动端H5数字键盘input type=number的处理(IOS和Android)...

在Vue中的项目,基于VUX-UI开发,一个常见的需求:1、金额输入框2、弹出数字键盘3、仅支持输入两位小数,限制最大11位数,不允许0开头第一,首先想到额就是在VUX-UI中制定typenumber。--不可行VUX中的文档和代码…

Sybase数据库应用系统调优的五大领域

Sybase数据库应用系统调优的五大领域 2011/3/14/13:49来源:慧聪it网本 文以“某大型商业银行的网上银行系统”这一很具有典型意义的企业级大型Sybase数据库应用系统为例,涉及了数据库应用系统调优的五大领域:压力测试、 应用端调优、服务器端…

android 6.0 ios9谁快,没安卓6.0流畅?iOS 9突飞猛进终于不卡

今天早些时候,iOS 9.1正式发布,改进系统Bug,添加新功能等,但还有不少反应系统流畅了。不知道是否是心里作用的关系,之前不少果粉吐槽iOS 9过于卡顿,苹果也是在一个版本一个版本的改进,这次的iOS…

(UML两个汇总)九种图。

最后总结UML关系,有明确的关系,现在让我们总结一下UML九图。。图往往比文字要直观,因此,当我们开发软件。文件必须是不可或缺的人物,。以下我将这九种图分了一下: 我们还能够将这九种图分为静态图和动态图&…

SqlBulkCopy 批量复制数据到数据表

使用 SqlBulkCopy 类只能向 SQL Server 表写入数据。但是,数据源不限于 SQL Server;可以使用任何数据源,只要数据可加载到 DataTable 实例或可使用 IDataReader 实例读取数据 使用Datatable作为数据源的方式:下面的代码使用到了Co…

Android Ac 控件,Android控件--MultiAutoCompleteTextView

1.功能可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个选中的时候再次输入值时会自动匹配,可用在发短信、发邮件时选择联系人这种类型当中。2.独特属性android:completionThreshold"3" ----设置输入多少字符时自…

BZOJ1299 [LLH邀请赛]巧克力棒

怎么又是博弈论。。。我去 Orz hzwer,这道题其实是可以转化成Nim游戏的! "第一步: 先从n根巧克力棒中取出m(m>0)根,使得这m根巧克力棒的xor和为0,同时使得剩下的n-m根巧克力棒无论怎么取,xor和都不…

Fragment的保存

2019独角兽企业重金招聘Python工程师标准>>> 一、场景 在一个fragment播放语音文件,一旦设备发生旋转,播放将暂停。因为fragment将重新生成。具体的流程步骤如下: 二、解决的方式 在Fragment的onCreate方法中,设置s…

SQL Server 存储引擎-剖析Forwarded Records

我们都知道数据在存储引擎中是以页的形式组织的,但数据页在不同的组织形式中其中对应的数据行存储是不尽相同的,这里通过实例为大家介绍下堆表的中特有的一种情形Forwared Records及处理方式. 概念 堆表中,当对其中的记录进行更新时,如果当前数据页无法满足更新行的容量,此时这…

u3d游戏开发视频潭州_游戏美术行业的发展与应用人工智能学院专业介绍及未来前景系列报告会二...

为了让2020级新同学对动漫专业加深认识,更好的规划学习,学院于11月12日6点晚邀请了校企合作单位“369云遮月游戏公司”在长安校区图书馆阶梯教室进行了游戏美术行业的发展与应用的报告会,主题围绕“专业介绍与发展前景”展开,云遮…

华为谷歌互利合作曝光:或将推Nexus手表

业内传言称,中国的华为科技公司和韩国LG电子公司,今年将为谷歌公司设计两款Nexus品牌的智能手机,这也将是华为科技第一次参加谷歌的Nexus硬件计划。日前,国外权威媒体披露了华为Nexus硬件计划的更多内容。除了一款5.7英寸的智能手…

unity2d随机生成物体_2020 年最好用的一键生成设计神器,全在这里了!

对于很多新手设计师来说,要高效率地完成一件看上去还不错的设计作品,其实并不是一件容易的事。特别是在现实的工作中,对于临危受命的任务,更是很少有人会耐心地等你慢慢去摸索的.……不慌,今天就掏出一份私藏已久的设计…

android MPV架构快速实现,不是所有的MPV都叫GL8,一体化智能座舱体验来袭

进入车内,首先映入眼帘的就是双12.3吋全液晶仪表及中控联屏,出色的画面质感在第一时间吸引了我的注意。当然,全新的一体化智能座舱理念,多屏互联、多维交互也是它的最大亮点之一。全新一代别克GL8家族采用迭代更新的通讯解决方案&…

基于SuperSocket的IIS主动推送消息给android客户端

在上一篇文章《基于mina框架的GPS设备与服务器之间的交互》中,提到之前一直使用superwebsocket框架做为IIS和APP通信的媒介,经常出现无法通信的问题,必须一天几次的手动回收程序池,甚至重起服务器,通常周末接到一个陌生…

明细表如何添加重量_关于Revit中明细表标准的导出及导入

Revit中明细表的作用非常大,项目中的数据归类整理及统计都离不开它,今天给大家分享一下如何在Revit中进行明细表标准的导出及导入,减少在实际项目中的重复性工作。1. 首先在Revit中新建一个项目文件,在平面视图中随便画几条管道&a…

鸿蒙还是不是安卓,华为捐赠鸿蒙核心架构!是否形成“三足鼎立”?

发布会已经开完,万物互联时代也已开启。经过测试,鸿蒙系统支持几乎所有的安卓软件,换句话说安卓用户可以无缝过渡到鸿蒙系统,相比安卓,速度更快,耗电量更低,这无疑比安卓系统的体验好出一个档次…

Filter基金会

一个、总结 简单的说,Filter的作用就是拦截(Tomcat的)service(Request,Response)方法。拿到Request、Response对象进行处理。然后释放控制。继续自己主动流转。其运用的还是“分层”的思想。至于为什么要增加这一层,为…

python2处理耗时任务_RabbitMQ Go客户端教程2——任务队列/工作队列

本文翻译自RabbitMQ官网的Go语言客户端系列教程,本文首发于我的个人博客:liwenzhou.com,教程共分为六篇,本文是第二篇——任务队列。这些教程涵盖了使用RabbitMQ创建消息传递应用程序的基础知识。 你需要安装RabbitMQ服务器才能完…

使用 CSS3 伪元素实现立体的照片堆叠效

CSS3 里引入的伪元素让 Web 开发人员能够在不需要额外添加 HTML 标签的情况下制作出复杂的视觉效果。例如,:before 和 :after 这个两个 CSS3 伪元素就可以帮助你实现很多有趣的效果。本教程将告诉你如何使用 CSS3 为元素创建一组漂亮的图片堆叠效果。 效果演示 …