讓你變懶的 Android Studio Live Templates
俗話說,不想偷懶的程序員不是好程序員!那麼今天就教大家偷懶下!
先舉個例子,我們在 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);
}
其中 *$ACTIVITY$* 代表當前所在的類名,*$CURSOR$* 代表當前滑鼠的定位位置,同理 *newInstance* 可以幫你在 Fragment 中快速聲明一個新建 Fragment 的方法,它的代碼如下:
public static $fragment$ newInstance($args$) {
$nullChecks$
Bundle args = new Bundle();
$addArgs$
$fragment$ fragment = new $fragment$();
fragment.setArguments(args);
return fragment;
}
其中 *$$* 代表是一個變數,中間包裹著這個變數的名字,你可以對這個變數聲明類型,這個後面再說。
是不是很容易理解呢?如果理解了那麼就可以來根據自己的使用習慣來定義自己的 *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;
}
注意這裡,如果你這段代碼是一些固定的代碼,那麼至此就結束了,但是這段代碼里是動態的,裡面有一些變數,因為每個類的類名如果都需要自己手動更改就太麻煩了,所以有個變數 *$CLASS$* ,所以需要點擊下面的 *Define* ,先要定義變數所屬的語言範圍,點開之後可以看到這裡支持 HTML、XML、JSON、Java、C++ 等,很明顯,我們這裡需要支持 Java ,選擇選中 Java :
緊接著,我們需要給變數 *$CLASS$* 定義類型,這裡的 *CLASS* 名字隨意取的,為了可讀性而已,你高興可以取名 *abc* ,真正給這個變數定義類型的是點擊 *Edit variables* 按鈕,來對該變數進行編輯,我們選擇 *className()* 選項,可以看到還有其他選項,但是看名字大家大概就猜到什麼含義了,這裡就不一一解釋了。
點擊 *ok* 保存,至此我們定義的一個單例的 Live Template 就完成了。你可以隨意打開一個類文件,然後輸入 *singleton* 按 *tab* 或者 *enter* 鍵就可以看到神奇的一幕出現了,是不是很帥?
看完這篇文章想想自己還有哪些常用到的代碼片段,趕緊把它定義成一個 Live Template 吧,你會發現你又可以變懶了!
本文原創發佈於微信公眾號 AndroidDeveloper「googdev」,不僅是Android原創乾貨分享,也許是最有人情味的技術公眾號,轉載請務必註明出處!
「掘金」是一個高質量的技術社區,從 RxJava 到 React Native,性能優化到優秀開源庫,讓你不錯過 Android 開發的每一個技術乾貨。各大應用市場搜索「掘金」,技術乾貨盡在掌握中。
推薦閱讀:
※Google 可能會在 Android P 中更嚴格限制隱藏 API 的使用
※Google 開發者大會紀念 T 恤贈送(全球限量)
※如何在Android上發送加密郵件?推薦這四大神器
※如何在 Android 上使用思源黑體作為系統字體?
TAG:Android | AndroidStudio | Android开发 |