巧用Live Template,不仅能提升AS开发效率,还能装逼

Android Studio已经更新到2.3版本了,修正了一些bug,同时增加了很多新功能,所包含的功能越来越强大。个人感觉在使用上和Eclipse简直不在同一个级别上,当然如果你之前习惯使用Eclipse,确实需要一段时间的适应,但当你适应后就会爱不释手。

迄今为止,Android Studio的操作还有很多不熟练的地方,甚至很多人都不知道原来还可以这样。先来看看几个操作事例吧!

对象.for
对象.forr
数字.for
对象.nn
条件语句.if
logt

是不是比我们正常输入快捷很多,当然这只是其中几个小事例而已。看到这里,有很多童鞋可能要说这不就是代码补全吗?

乍一看是自动补全,其实不然,自动补全只是对一个方法或类名的补全,而这个只需要简单输入几个字符就可以出来一大段代码,正是Android Studio的Live Template,在开发中善加利用简直喜欢的不要不要的。

除了上面这几个,Android Studio还给我们内置了很多默认模板,一起来学习一下吧。

1.psf

public static final

2.psfi

public static final int

3.psfs

public static final String

4.St

String

5.thr

throw new

6.todo

// TODO: 2017/3/15

7.appNs

xmlns:app=http://schemas.android.com/apk/res-auto

8.lh

android:layout_height=$height$

9.lhm

android:layout_height=match_parent

10.lhw

android:layout_height=wrap_content

11.lw

android:layout_width=$width$

12.lem

android:layout_width=match_parent

13.lww

android:layout_width=wrap_content

14.toolsNs

xmlns:tools=http://schemas.android.com/tools

15.visible

.setVisibility(View.VISIBLE);

16.gone

.setVisibility(View.GONE);

17.Sfmt

String.format($string$, $params$);

18.const

private static final int $name$ = $value$;

19.key

private static final String KEY_$value$ = $value$;

20.fbc

($cast$) findViewById(R.id.$resId$);

21.rgS

$resources$.getString(R.string.$stringId$)

22.Toast创建Toast

Toast.makeText($context$, $text$, Toast.LENGTH_SHORT).show();

23.mn求最小值

var1 = Math.min(var2,var3);

24.mx求最大值

var1 = Math.max(var2,var3);

25.logt快速生成TAG

private static final String TAG = $className$;

26.logm

Log.d(TAG, $content$);

27.logd

Log.d(TAG, $METHOD_NAME$: $content$);

28.logi

Log.i(TAG, $METHOD_NAME$: $content$);

29.logr

Log.d(TAG, $METHOD_NAME$() returned: + $result$);

30.loge

Log.e(TAG, $METHOD_NAME$: $content$, $exception$);

31.logw

Log.w(TAG, $METHOD_NAME$: $content$, $exception$);

32.ifn对象判空

if (某变量 == null) {....}

33.inn对象非空判断

if (某变量 != null) {....}

34.lst数组末尾元素

$ARRAY$[$ARRAY$.length - 1]

35.forfor循环

for () {...}

36.forii变量作为索引for循环

for (int i = 0; i ; i++) {}

37.itco遍历Collection集合

for (Iterator iterator = collection.iterator(); iterator.hasNext(); ) {

Object next = iterator.next();

}

38.itve遍历Vector集合

for(int i = 0; $INDEX$ $VECTOR$.size(); i++) {

$ELEMENT_TYPE$ $VAR$ = $CAST$ $VECTOR$.elementAt(i);

}

39.itar遍历数组

for (int i = 0; i Array.length; i++) { int i1 = Array[i];}

40.itit获取迭代器并遍历

while (iterator.hasNext()) { Object next = iterator.next(); }

41.iten遍历枚举

while (枚举类.hasMoreElements()) { Object nextElement = 枚举类.nextElement(); }

42.lazy对象判空创建并

if (savedInstanceState == null) { savedInstanceState = new Bundle(); }

43.inst实例判断

if ($EXPR$ instanceof $TYPE$) { $TYPE$ $VAR1$ = ($TYPE$)$EXPR$; $END$ }

44.geti快速生成Instance方法

public static MainActivity getInstance() { return ; }

45.psvm快速生成main方法

public static void main(String[] args){ ... }

46.starter开启Activity方法

public static void start(Context context) {

Intent starter = new Intent(context, $ACTIVITY$.class);

starter.putExtra($CURSOR$);

context.startActivity(starter);

}

47.rouiT构建runOnUiThread

getActivity().runOnUiThread(new Runnable() {

@Override

public void run() {

$cursor$

}

});

48.IntentView

Intent view = new Intent();

view.setAction(Intent.ACTION_VIEW);

view.setData(Uri.parse($url$));

startActivity(view);

49.ViewConstructors自定义View构造器

public $class$(Context context) {

this(context, null);

}

public $class$(Context context, AttributeSet attrs) {

this(context, attrs, 0);

}

public $class$(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

$cursor$

}

50.toar将Collection的对象存储到一个数组里

something.toArray(new collection[collection.size()])

如果能够不断使用并熟练后,开发效率一定可以提升很多。有的朋友会觉得这些命令难记,其实都很简单,每个都有其命名规律,如果实在记不住可以自己修改为自己容易记住的提示命令。如果觉得这些模板太少,不够自己实际使用,也可以自定义Live Templates。

设置路径为Settings-Editor-Live Template,可以创建一个自己的模板组和适用的Template,可以为每个模板指定名字和描述,并且指定适用的文件类型和语句块,如下图所示:

自定义Live Template
Edit Template Variables

保存成功后,就可以在Java文件中使用我们上面定义的Template了,简直爽爆了。

当然,如果需要制作一些完美的Template,就需要先简单学习一下 Live Template 语法,不过也非常简单。

在语句中使用$...$ 表示待输入的变量,在字符串内也可以使用,在每次输入的时候相同的变量会一起改变。当然在Expression内有很多供使用的非常方便的方法,如 className()、 methodName()等,记得设置 Expression 后别忘了勾选 Skip if defined, 这样在使用的时候光标就不会再停留在这个变量处。更多说明请参照 https://www.jetbrains.com/help/idea/2016.1/live-template-variables.html。

如果你不是很想自己来设置,或者说懒癌比较严重,也可以直接使用大神们早已准备好的Templates,直接导入到Android Studio中即可使用。参考地址:https://github.com/keyboardsurfer/idea-live-templates。导入也比较简单,下载后直接复制到你的 Android Studio 的config\templates目录下。

经过这一折腾,虽然学习会花一点儿时间,但是学会后使用 Android Studio开发效率显著提高,代码敲出来也爽了很多。特别是看到别人还在一个个单词输入的时候,你却只用几个字母就搞定一大段代码,可以小小的装逼一下。

今天就先分享到这里,后续将推出更多精彩内容,欢迎一起探讨学习进步。

此文章版权归微信公众号分享达人秀(ShareExpert)——鑫鱻所有,若转载请备注出处,特此声明!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,448评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,573评论 18 399
  • 2017年5月8号 多云 断崖壁前,万马呼啸,仰天长嘶,休城危矣。绝境之时,古有西楚霸王破釜沉舟,今有休城众将...
    青春一去不复返丶阅读 873评论 0 0
  • 我是在我住的小镇上读的小学,镇上只有一个初中,并不需要填志愿,直接入读就好了。 同学们有的要出去读,本来我是打算...
    invincible方阅读 287评论 0 0