俗話說。不想偷懶的程序猿不是好程序猿。那麼今天就教你們偷懶下!ruby
先舉個樣例。咱們在 Android 開發中輸入 Toast ,而後會有例如如下例如如下的高速操做:微信
是否是很是方便?markdown
有同窗問,這不就是本身主動補全麼?錯了,乍一看是本身主動補全。事實上否則。本身主動補全是對一個方法或類名的補全,比方你輸入 find 而後就會有 findViewById 方法提示你,你可以高速定位。但是咱們實際開發中通常還需要對它強制轉型,而後加上 R.id.xx 來聲明它的 id。但是你可以試着輸入 fbc ,而後按 tab 或者 enter 鍵。你會發現比本身主動補全還要更方便。post
這個就叫作 Live Template 。假設真要翻譯姑且就叫作實時模板吧,在 AS 中有兩種模板。一種就是你在新建一個 Activity 的時候可以選擇 Empty Activity、FullScreen Activity 之類的,這個一般是對你整個文件而言的。另外一種就是本篇要介紹的 Live Template 。這個會在一些常常使用到的代碼片斷會很是實用。spa
打開 設置 -> Editor -> Live Templates ,可以看到默認已經有很是多 Live Templates 了,可以看下個人截圖 Android 分類下有例如如下這些模板:翻譯
你都可以輸入那些縮寫來高速啓用這些模板,比方定義一個常量。高速設置 View 爲 gone 。高速啓動一個 Activity 等。你都可以直接輸入 const、gone、starter 來高速操做。是否是認爲很是酷炫!code
那詳細是怎樣實現的呢?咱們最好仍是點擊這些模板列表的 starter 。有例如如下代碼:orm
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」。轉載請務必註明出處!