俗话说。不想偷懒的程序猿不是好程序猿。那么今天就教大家偷懒下!
先举个样例。我们在 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 等。你都能够直接输入 const、gone、starter 来高速操作。是不是认为非常酷炫!
那详细是怎样实现的呢?我们最好还是点击这些模板列表的 starter 。有例如以下代码:
public static void start(Context context) {
Intent starter = new Intent(context, $ACTIVITY$.class);
starter.putExtra($CURSOR$);
context.startActivity(starter);
}
当中
public static $fragment$ newInstance($args$) {
$nullChecks$
Bundle args = new Bundle();
$addArgs$
$fragment$ fragment = new $fragment$();
fragment.setArguments(args);
return fragment;
}
当中 $$ 代表是一个变量,中间包裹着这个变量的名字,你能够对这个变量声明类型。这个后面再说。
是不是非常easy理解呢?假设理解了那么就能够来依据自己的使用习惯来定义自己的 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;
}
注意这里,假设你这段代码是一些固定的代码。那么至此就结束了,可是这段代码里是动态的,里面有一些变量,由于每一个类的类名假设都须要自己手动更改就太麻烦了,所以有个变量
紧接着,我们须要给变量
点击 ok 保存。至此我们定义的一个单例的 Live Template 就完毕了。你能够任意打开一个类文件,然后输入 singleton 按 tab 或者 enter 键就能够看到奇妙的一幕出现了,是不是非常帅?
看完这篇文章想想自己还有哪些经常使用到的代码片段,赶紧把它定义成一个 Live Template 吧,你会发现你又能够变懒了!
本文原创公布于微信公众号 AndroidDeveloper「googdev」。转载请务必注明出处!