让你变懒的 Android Studio Live Templates

本文涉及的产品
视频直播,500GB 1个月
简介:

俗话说,不想偷懒的程序员不是好程序员!那么今天就教大家偷懒下!

先举个例子,我们在 Android 开发中输入 Toast ,然后会有如下如下的快速操作:

image

是不是很方便?

有同学问,这不就是自动补全么?错了,乍一看是自动补全,其实不然。自动补全是对一个方法或类名的补全,比如你输入 find 然后就会有 findViewById 方法提示你,你可以快速定位,但是我们实际开发中一般还需要对它强制转型,然后加上 R.id.xx 来声明它的 id,但是你可以试着输入 fbc ,然后按 tab 或者 enter 键,你会发现比自动补全还要更方便。

这个就叫做 Live Template ,如果真要翻译姑且就叫做实时模板吧,在 AS 中有两种模板,一种就是你在新建一个 Activity 的时候可以选择 Empty Activity、FullScreen Activity 之类的,这个一般是对你整个文件而言的,还有一种就是本篇要介绍的 Live Template ,这个会在一些常用到的代码片段会非常有用。

打开 设置 -> Editor -> Live Templates ,可以看到默认已经有很多 Live Templates 了,可以看下我的截图 Android 分类下有如下这些模板:
image

你都可以输入那些缩写来快速启用这些模板,比如定义一个常量,快速设置 View 为 gone ,快速启动一个 Activity 等,你都可以直接输入 const、gone、starter 来快速操作,是不是觉得很酷炫!

那具体是如何实现的呢?我们不妨点击这些模板列表的 starter ,有如下代码:

public static void start(Context context) {
    Intent starter = new Intent(context, $ACTIVITY$.class);
    starter.putExtra($CURSOR$);
    context.startActivity(starter);}

其中 $ACTIVITY$ 代表当前所在的类名,$CURSOR$ 代表当前鼠标的定位位置,同理 newInstance 可以帮你在 Fragment 中快速声明一个新建 Fragment 的方法,它的代码如下:

public static $fragment$ newInstance($args$) {
    $nullChecks$
    Bundle args = new Bundle();
    $addArgs$
    $fragment$ fragment = new $fragment$();
    fragment.setArguments(args);
    return fragment;}

其中 $$ 代表是一个变量,中间包裹着这个变量的名字,你可以对这个变量声明类型,这个后面再说。

是不是很容易理解呢?如果理解了那么就可以来根据自己的使用习惯来定义自己的 Live Templates 了。

比如我们在开发中要经常写单例模式吧?每次都要写这么一大段是不是很烦?那么今天就教大家自定义一个单例模式的模板,以后轻松搞定单例。

到 设置 -> Editor -> Live Templates ,点击右上角的 + 号,选择 Template Group ,因为我习惯自定义的单独分组先,这样好管理,比如新建一个分组叫做 stormzhang ,然后就会看到有一个 stormzhang 的分组显示在了列表里,这时候鼠标选中该分组,然后再点击右上角的 + 号,点击 Live Template ,然后如下图填写缩写与描述,紧接着把如下代码拷贝到下面的输入框里(PS:单例模式的写法有很多种,这里就随意以其中一种为例)

private static $CLASS$ instance = null;
 private $CLASS$(){}
 public static $CLASS$ getInstance() {
    synchronized ($CLASS$.class) {
        if (instance == null) {
            instance = new $CLASS$();
        }
    }

    return instance;}

注意这里,如果你这段代码是一些固定的代码,那么至此就结束了,但是这段代码里是动态的,里面有一些变量,因为每个类的类名如果都需要自己手动更改就太麻烦了,所以有个变量 $CLASS$ ,所以需要点击下面的 Define ,先要定义变量所属的语言范围,点开之后可以看到这里支持 HTML、XML、JSON、Java、C++ 等,很明显,我们这里需要支持 Java ,选择选中 Java :
image

紧接着,我们需要给变量 $CLASS$ 定义类型,这里的 CLASS 名字随意取的,为了可读性而已,你高兴可以取名 abc ,真正给这个变量定义类型的是点击 Edit variables 按钮,来对该变量进行编辑,我们选择 calssName() 选项,可以看到还有其他选项,但是看名字大家大概就猜到什么含义了,这里就不一一解释了。

image

点击 ok 保存,至此我们定义的一个单例的 Live Template 就完成了。你可以随意打开一个类文件,然后输入 singleton 按 tab 或者 enter 键就可以看到神奇的一幕出现了,是不是很帅?

看完这篇文章想想自己还有哪些常用到的代码片段,赶紧把它定义成一个 Live Template 吧,你会发现你又可以变懒了!

文章转载自 开源中国社区[http://www.oschina.net]

相关文章
|
2月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
167 1
|
17天前
|
Java Unix Linux
Android Studio中Terminal运行./gradlew clean build提示错误信息
遇到 `./gradlew clean build`命令执行出错时,首先应检查错误信息的具体内容,这通常会指向问题的根源。从权限、环境配置、依赖下载、版本兼容性到项目配置本身,逐一排查并应用相应的解决措施。记住,保持耐心,逐步解决问题,往往复杂问题都是由简单原因引起的。
85 2
|
1月前
|
XML IDE 开发工具
🔧Android Studio高级技巧大公开!效率翻倍,编码不再枯燥无味!🛠️
【9月更文挑战第11天】在软件开发领域,Android Studio凭借其强大的功能成为Android开发者的首选IDE。本文将揭示一些提升开发效率的高级技巧,包括自定义代码模板、重构工具、高级调试技巧及多模块架构。通过对比传统方法,这些技巧不仅能简化编码流程,还能显著提高生产力。例如,自定义模板可一键插入常用代码块;重构工具能智能分析并安全执行代码更改;高级调试技巧如条件断点有助于快速定位问题;多模块架构则提升了大型项目的可维护性和团队协作效率。掌握这些技巧,将使你的开发之旅更加高效与愉悦。
59 5
|
2月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
46 1
|
2月前
|
Android开发
Android Studio: 解决Gradle sync failed 错误
本文介绍了解决Android Studio中出现的Gradle同步失败错误的步骤,包括从`gradle-wrapper.properties`文件中获取Gradle的下载链接,手动下载Gradle压缩包,并替换默认下载路径中的临时文件,然后重新触发Android Studio的"Try Again"来完成同步。
793 0
Android Studio: 解决Gradle sync failed 错误
|
2月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
74 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
2月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
81 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题
|
2月前
|
Java 网络安全 开发工具
UNITY与安卓⭐一、Android Studio初始设置
UNITY与安卓⭐一、Android Studio初始设置
|
2月前
|
Java 开发工具 Android开发
Android Studio利用Build.gradle导入Git commit ID、Git Branch、User等版本信息
本文介绍了在Android Studio项目中通过修改`build.gradle`脚本来自动获取并添加Git的commit ID、branch名称和用户信息到BuildConfig类中,从而实现在编译时将这些版本信息加入到APK中的方法。
58 0
|
2月前
|
IDE API 开发工具
与Android Gradle Plugin对应的Gradle版本和Android Studio版本
与Android Gradle Plugin对应的Gradle版本和Android Studio版本
307 0