Android Studio 强大的Live Templates

你不一定知道的Android Studio中强大的快捷代码块

前言

今天发现世界上第二好用的ide Xcode有自定义代码块这样的东西,简直不能更方便啊!我顿时就想起世界上最好用的ide 是不是有这样的功能(雾,一番深究后果然不出我所料,果然是世界上最好用的ide啊有没有!!

首先看标题,是不一定,不是一定哦(……,
我才不是什么标题党

不知道Live Templates怎么翻译才合适,暂且说成快捷代码块吧

doge

你可能使用过的快捷方式

  • psvm main方法
    psvm

    (等等……这和我大Android有什么关系我甩……

    不要激动,我只是展示一下而已……
  • foriforeach
    fori

    foreach
  • .null.nn(注意有一点,在变量名后使用,以下类似)
    null & nn

远远不止如此

  • const 随机生成一个符合Android Style的final int ,再也不用自己写值了, 谁便说一下,Android官方不推荐使用enum<center>
    const
  • key 生成一个KEY_开头的final String, Bundle KEY专用<center>
    key
  • I 大写i 和foreach相同
    I
  • fbcfindViewById这么简单… 这里我修改了默认的方式,在前边加了一个变量$var$ = …,后面说
    fbc
  • visible and gone (可以自己加一个invisible快捷方式<center>
    visible
  • rgsSfmt
    string
  • starternewInstance
    starter&newInstance
  • log*各种logcat
    logcat

自定义快捷方式

自带不满足?试试自定义Setting > Editor > Live Templates 右上角添加,还可以修改默认的方式,这里还有很多还没列出的快捷方式

live templates

最后

没有咯

用了Android Studio,Eclipse从此变路人

dodogege

怎么装成第一次写博客的样子(好累,在线等

补充:关于自定义模板的内容可以参考下面的博客

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

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

是不是很方便?

有同学问,这不就是自动补全么?错了,乍一看是自动补全,其实不然。自动补全是对一个方法或类名的补全,比如你输入 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 分类下有如下这些模板:

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

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

public static void start(Context context) {
    Intent starter = new Intent(context, $ACTIVITY</span><span class="hljs-variable">$.class);
    starter.putExtra($CURSOR</span><span class="hljs-variable">$);
    context.startActivity(starter);
}
       
       
  • 1
  • 2
  • 3
  • 4
  • 5

其中 ACTIVITY” role=”presentation” style=”position: relative;”>ACTIVITYACTIVITY 代表当前鼠标的定位位置,同理 newInstance 可以帮你在 Fragment 中快速声明一个新建 Fragment 的方法,它的代码如下:

public static $fragment</span><span class="hljs-variable">$ newInstance($args</span><span class="hljs-variable">$) {
    $nullChecks</span><span class="hljs-variable">$
    Bundle args = new Bundle();
    $addArgs</span><span class="hljs-variable">$
    $fragment</span><span class="hljs-variable">$ fragment = new $fragment</span><span class="hljs-variable">$();
    fragment.setArguments(args);
    return fragment;
}
       
       
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

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

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

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

private static $CLASS</span><span class="hljs-variable">$ instance = null;

private $CLASS</span><span class="hljs-variable">$(){
}

public static $CLASS</span><span class="hljs-variable">$ getInstance() {
    synchronized ($CLASS</span><span class="hljs-variable">$.class) {
        if (instance == null) {
            instance = new $CLASS</span><span class="hljs-variable">$();
        }
    }

    return instance;
}
       
       
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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

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

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

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

本文原创发布于微信公众号 AndroidDeveloper「googdev」,转载请务必注明出处!

注意:这些模板的正确使用还要看他放在代码的位置,如果是一个方法模板,放在另一个方法里调用就无法使用!!另外建议使用Tab键补全代码,可以快速跳到下一个参数!

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

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

是不是很方便?

有同学问,这不就是自动补全么?错了,乍一看是自动补全,其实不然。自动补全是对一个方法或类名的补全,比如你输入 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 分类下有如下这些模板:

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

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

public static void start(Context context) {
    Intent starter = new Intent(context, $ACTIVITY</span><span class="hljs-variable">$.class);
    starter.putExtra($CURSOR</span><span class="hljs-variable">$);
    context.startActivity(starter);
}
  
  
  • 1
  • 2
  • 3
  • 4
  • 5

其中 ACTIVITY” role=”presentation” style=”position: relative;”>ACTIVITYACTIVITY 代表当前鼠标的定位位置,同理 newInstance 可以帮你在 Fragment 中快速声明一个新建 Fragment 的方法,它的代码如下:

public static $fragment</span><span class="hljs-variable">$ newInstance($args</span><span class="hljs-variable">$) {
    $nullChecks</span><span class="hljs-variable">$
    Bundle args = new Bundle();
    $addArgs</span><span class="hljs-variable">$
    $fragment</span><span class="hljs-variable">$ fragment = new $fragment</span><span class="hljs-variable">$();
    fragment.setArguments(args);
    return fragment;
}
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

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

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

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

private static $CLASS</span><span class="hljs-variable">$ instance = null;

private $CLASS</span><span class="hljs-variable">$(){
}

public static $CLASS</span><span class="hljs-variable">$ getInstance() {
    synchronized ($CLASS</span><span class="hljs-variable">$.class) {
        if (instance == null) {
            instance = new $CLASS</span><span class="hljs-variable">$();
        }
    }

    return instance;
}
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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

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

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

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

本文原创发布于微信公众号 AndroidDeveloper「googdev」,转载请务必注明出处!

注意:这些模板的正确使用还要看他放在代码的位置,如果是一个方法模板,放在另一个方法里调用就无法使用!!另外建议使用Tab键补全代码,可以快速跳到下一个参数!

猜你喜欢

转载自blog.csdn.net/hizhangyuping/article/details/80924413
今日推荐