消灭模板代码,自定义AndroidStudio文件模板(2)

本文介绍如何自定义Android Studio文件模板,包括template.xml、recipe.xml.ftl和root目录的作用,通过实例演示创建ListView和RecyclerView Adapter的模板,提高开发效率。
摘要由CSDN通过智能技术生成

上一篇讲到的自定义AndroidStudio文件模板的方法,但这种方法虽然简单却只能一次生成一个文件。有没有方法能一键生成一套文件呢?其实AndroidStudio已经提供了这样的功能,而且我们也经常在用。

这里写图片描述

如图红框上的文件就是AndroidStudio已经提供的模板文件组,最常用的就是Activity了。但我们使用这里的模板新建一个Activity,AndroidStudio就会自动为我们新建一个Activity的java类文件、和Layout布局xml文件,同时还会贴心地为我们在Manifest文件中注册我们的Activity。这一切是怎么做到的呢?

溯源

我想,这些模板肯定是被放在某些地方的文件集,说不定文件夹的名字就对应这里模板的名字呢!用强大的文件搜索软件EveryThing搜一下这里的其中一个模板的名字,就会发现,这些模板文件就存在我们AndroidStudio(IDEA)的安装目录中。
这里写图片描述

一下是在Windows下存放文件模板的目录:
<AndroidStudio安装目录>\plugins\android\lib\templates
在activitys目录下就存放着相应的Activity模板:
这里写图片描述

探秘

好奇心是学习的动力,我迫不及待地打开BasicActivity目录:
这里写图片描述

发现有一个root目录,若干.ftl文件和若干图片。
这些文件怎么关联在一起,怎么发挥作用,怎么接受用户输入并生成文件的呢?
经过Google后,我发现了这张图:

这里写图片描述

原来如此,FreeMarker接受用户输入的参数和两种.ftl文件,输出生成的代码文件。问题来了,what is FreeMarker?能吃吗?

FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据,  并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。--源自百度百科

FreeMarker很符合我们的需求,看来这个解析器是集成在AndroidStudio中的。有人可能会吐槽,搞个模板还要专门跑去学FreeMarker吗?其实,就算不懂FreeMarker语法(最好有一丁点了解)也可以轻松搞一个简单的文件模板,因为AndroidStudio提供很多现成的Demo是最好的学习资料,创造往往从模仿开始!

先从这个template.xml文件开始:

<?xml version="1.0"?>
<template
        format="5"
        revision="6"
        name="Basic Activity"
        minApi="7"
        minBuildApi="14"
        requireAppTheme="true"
        description="Creates a new basic activity with an app bar.">

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

    <parameter
            id="activityClass"
            name="Activity Name"
            type="string"
            constraints="class|unique|nonempty"
            suggest="${layoutToActivity(layoutName)}"
            default="MainActivity"
            help="The name of the activity class to create"/>

------------------此处省略若干<parameter/>标签-------------------------------
    <parameter
            id="useFragment"
            name="Use a Fragment"
            type="boolean"
            default="false"
            help="If true, the content will be a fragment"/>

    <!-- 128x128 thumbnails relative to template.xml -->
    <thumbs>
        <!-- default thumbnail is required -->
        <thumb>template_basic_activity.png</thumb>
        <!-- attributes act as selectors based on chosen parameters -->
        <thumb useFragment="true">template_basic_activity_fragment.png</
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio中,你可以设置自定义代码模板来加快开发过程。以下是一些常见的 Android Studio 文件代码模板示例: 1. Activity 模板: ```java public class ${NAME} extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.${LAYOUT}); } } ``` 2. Fragment 模板: ```java public class ${NAME} extends Fragment { private ${NAME}ViewModel viewModel; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.${LAYOUT}, container, false); // 初始化视图和逻辑 return rootView; } } ``` 3. RecyclerView Adapter 模板: ```java public class ${NAME}Adapter extends RecyclerView.Adapter<${NAME}Adapter.${ViewHolder}> { private List<${DATA_TYPE}> dataList; public ${NAME}Adapter(List<${DATA_TYPE}> dataList) { this.dataList = dataList; } @NonNull @Override public ${ViewHolder} onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { // 创建 ViewHolder 并返回 } @Override public void onBindViewHolder(@NonNull ${ViewHolder} holder, int position) { // 绑定数据到 ViewHolder 上的视图 } @Override public int getItemCount() { return dataList.size(); } static class ${ViewHolder} extends RecyclerView.ViewHolder { ${ViewHolder}(View itemView) { super(itemView); // 初始化视图 } } } ``` 以上只是一些示例模板,你可以根据自己的需求创建和编辑代码模板。要在Android Studio中设置这些模板,请按照以下步骤操作: 1. 打开 Preferences(或Settings) 对话框。 2. 导航到 Editor > File and Code Templates。 3. 在右侧的面板中,选择对应的文件类型(如Java Class、Java Interface等)。 4. 编辑或添加你的代码模板。 5. 点击“Apply” 或 “OK”保存更改。 希望这些模板对你有帮助!

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值