本文轉(zhuǎn)自鴻洋微信公眾號(hào)由大力-哥投稿。
大力-哥的博客地址:
http://blog.csdn.net/qq137722697
本篇將從 Live Templates簡介沧奴,常用AS自帶模板粤剧,自定義模板三個(gè)方面開展介紹歇竟,并且只介紹 Live Templates中Java代碼方面的使用,其余感覺不是很常用抵恋,看完這篇之后你可以自己研究一下焕议。
一個(gè)好的程序猿應(yīng)該是花更多的時(shí)間在處理業(yè)務(wù)處理上,而不是重復(fù)敲相同的代碼弧关,一行代碼節(jié)約1s也是節(jié)約盅安。看完這篇之后你會(huì)覺得AS確實(shí)越來越強(qiáng)大了世囊,簡直是Android程序猿的福音呀别瞭,希望推出更多提高開發(fā)效率的工具或插件。廢話不多說株憾,直接進(jìn)入主題蝙寨。
1、什么是 Live Templates
沒有統(tǒng)一的翻譯嗤瞎,代碼模板墙歪、熱鍵模板、動(dòng)態(tài)模板隨便叫哪個(gè)都行
作用
代碼快速補(bǔ)全
提高寫代碼的速度
位置
Settings->Editor->Live Templates
用法
全關(guān)鍵字型:關(guān)鍵字–>回車
后綴關(guān)鍵型:使用對(duì)象.關(guān)鍵字–>回車
簡單使用
先來兩個(gè)效果圖贝奇,吊一下胃口虹菲,更加實(shí)用的還在后面
AS自帶模板
快速打印日志
logt –>快速補(bǔ)全TAG
loge—>快速補(bǔ)全Log.e(TAG,”“);
自定義模板
輸入 sin 回車即自動(dòng)補(bǔ)全單例模式所需的代碼
系統(tǒng)自帶模板
系統(tǒng)自帶模板從兩個(gè)方面講解,全關(guān)鍵字型和后綴關(guān)鍵型掉瞳,由于篇幅的原因毕源,這里只講解常用的一些模板髓帽,未講解到的可以到 Settings->Editor->Live Templates中查看
2、全關(guān)鍵字型
先來說說什么是全關(guān)鍵字型脑豹,其實(shí)就是輸入關(guān)鍵字–>回車郑藏,
eg:輸入loge 回車即會(huì)自動(dòng)打印出
Log.e(TAG, "onCreate: ", );
(1)findViewById
在此之前我們?cè)贏ctivity中找到一個(gè)view可能是這樣寫的:
有了fbc之后我們可以這樣寫:fbc 回車
(2)定義常量
以前你寫整形常量是不是要一個(gè)單詞的敲出:?private static final int 。瘩欺。必盖。
還有更快的寫法:const 回車
字符串常量也有:key 回車
其他常量,目前as只提供了整形和字符串類型常量的模板俱饿,學(xué)了后面的自定義之后你就可以定義其他類型的了歌粥,當(dāng)然還有一種捷徑:psf 回車即可快速補(bǔ)全
public static final
(3)for循環(huán)
相信很多小伙伴也覺得每次都要寫整個(gè)for循環(huán)好麻煩,as提供了:fori 回車拍埠,看對(duì)比圖
這里還有一個(gè)隱藏的模板失驶,sout 回車即可快速補(bǔ)全 System.out.printf(“”);
(4)if判斷
ifn 回車(推薦)
inn 回車
(5)隱藏View
gone
(6)快速在子線程中切換到主線程
rouiT
(7)字符串格式化
Sfmt
(8)快速實(shí)現(xiàn)自定義View的三個(gè)構(gòu)造方法
ViewConstructors
個(gè)人覺得這個(gè)是一個(gè)非常實(shí)用的模板了,比快捷鍵還方面枣购,不行你自己試試
OK 全關(guān)鍵字型就只講這些常用的了嬉探,不常用的可以去設(shè)置中查看。
3棉圈、后綴關(guān)鍵型
再來說說什么是后綴關(guān)鍵型涩堤,其實(shí)就是“使用對(duì)象.關(guān)鍵字–>回車”,繼續(xù)往下看就知道是什么啦:
判斷
.notnull
.null
局部變量
.var
全局變量
.field
這個(gè)也是一個(gè)非常實(shí)用的模板分瘾,在代碼量非常多的類中就更加突出了胎围,不用跑到來的最前面定義右跑回來初始化。
循環(huán)
.for 增強(qiáng)for循環(huán)
.fori 正序遍歷
.forr 逆序遍歷
還有針對(duì)下標(biāo)的
return返回
.return
類型轉(zhuǎn)換
.cast
拋出異常
.try
字符串格式化
.format
分支
.switch
后綴型的也只講這些常用的了德召,快進(jìn)入激動(dòng)的自定義模板白魂。
4、自定義模塊
我這里給出幾個(gè)比較常用的自定義模板上岗,如果你覺得有比較好的可以抽取出來的福荸,歡迎留言。
(1)單例模式
還是一開始就給出的單例模式液茎,再來看看效果圖:
是不是很帶感逞姿,來看看怎么設(shè)置(建議先新建一個(gè)Template Group辞嗡,便于管理):
然后點(diǎn)擊 Edit variables
下面是單例模式的模板(根據(jù)個(gè)人寫單例模式的習(xí)慣來)
來看看上面涉及到的知識(shí):
更詳細(xì)的Expression?介紹:
https://www.jetbrains.com/help/idea/2016.1/live-template-variables.html
Skip if defined?:
如果選中捆等,光標(biāo)會(huì)直接跳到句末,不會(huì)停留在某個(gè)變量處续室。
(2)click
模板:
public void onClick(View view) {
switch (view.getId()) {
case R.id.$resId$:
$content$
break;
default:
break;
}
}
(3)打印帶定位功能的日志
新建 dl (名字自擬)為下面的模板
Log.e("$class$",
"$method$($class$.java:$line$)"+$content$);
為什么打印下面的代碼就可以定位到指定類所在的行數(shù)呢栋烤?
Log.e("MainActivity",
"onCreate(MainActivity.java:13)我是日志內(nèi)容");
告訴你一個(gè)小秘密,logcat中只要打印的內(nèi)容中帶有”(類名.java:行號(hào))”就可以自動(dòng)變?yōu)榭牲c(diǎn)擊的鏈接挺狰,點(diǎn)擊之后就可以跳轉(zhuǎn)到改類指定的行數(shù)明郭。
這樣就實(shí)現(xiàn)了打印帶定位功能的日志买窟,但是這個(gè)是有一定的局限性的,比如打印語句之前很可能會(huì)增加代碼薯定,由于行數(shù)是固定死的始绍,此時(shí)就會(huì)導(dǎo)致定位有一定的誤差。怎么解決呢话侄?這里推薦看一個(gè)日志打印的工具類亏推,android studio日志打印神器,日志代碼跟蹤器ELog年堆。
(4)Switch
快速搭建模式吞杭、防止漏掉break和default
switch ($content$) {
case $value$:
$code$
break;
default:
break;
}
(5)字符串非空判斷
這也是一個(gè)非常實(shí)用的模板了
TextUtils.isEmpty($content$);
最后
這篇文章是本人在給組內(nèi)同事培訓(xùn)時(shí)制作的ppt修改而來,我將ppt共享出來变丧,如果你有這個(gè)需求也可以下來修改修改芽狗。
下載地址:
https://github.com/huangdali/livetemplates
如何你覺得這篇文章對(duì)你有用,歡迎star痒蓬,如果你有更好的自定義模板童擎,歡迎填充完善,幫助更多的人
如果你有想學(xué)習(xí)的文章直接留言攻晒,我會(huì)整理征稿柔昼。如果你有好的文章想和大家分享歡迎投稿,直接向我投遞文章鏈接即可炎辨。
歡迎長按下圖->識(shí)別圖中二維碼或者掃一掃關(guān)注我的公眾號(hào):