但未必符合我們需要的模板樣式,所以我們要自定義代碼模板。
舉例自定義MVPActivity模板:點擊完成后模板如下:
對應的文件分別如下:
以上代碼都是自動生成的,是不是很方便?
注:每個人心中的MVP模式或許都有些差異,我習慣這樣寫,如有不足還請指正。
下面開始講解自定義模板步驟:
1.Android studio自帶的模板存在于AndroidStudio.app/Contents/plugins/android/lib/templates/activities文件夾下,里面可以看到有很多我們熟悉的activity模板了:在寫自定義模板之前我們需要分析一下一個模板的文件結構和用法,之后可以照貓畫虎寫出我們需要的模板來。
src:代碼文件
globals.xml.ftl:可存儲全局變量以供其他模板文件統一引用,.ftl文件是freemarker模板引擎,它是一個Java類庫,主要用于創建模板。
recipe.xml.ftl:用于組合生成我們實際需要的代碼文件和布局文件等。
template.xml:相當于Android中的布局文件,用于提供參數,布局等。
下面一一打開文件進行簡單介紹:
這里if判斷可以輕松看出是根據用戶選擇生成的文件類型來生成Java文件或者kotlin文件,即
template.xml文件就是模板界面了,主要由parameter標簽獲取用戶輸入的參數:
id:唯一標識符,也用于其他文件變量查找引用
name:該標簽的名稱,同時將展示給用戶
type:參數類型,如boolean 、string等
很類似Android寫布局文件的形式吧!每個parameter標簽就相當于一個控件,這樣就好理解了。
3.定義MVPActivity代碼模板
經過以上簡單介紹基本足夠我們寫自定義模板了,雨里霧里的童鞋們可以再打開其他模板研究一下,加深印象。
首先創建MVPActivity文件夾:
從EmptyActivity模板中將所有文件復制進來,并根據自己的需求添加如下文件
其中每個文件代碼如下:
編輯好Java文件后,根據自己的需要編輯template.xml文件來自定義界面,還是不會編輯界面的童鞋可以仿照其他界面代碼研究一下。
接下來是編輯內聯規則,如下圖:需要注意的是箭頭標記的地方,這里根據模板生成Java文件的時候我們希望文件名字是創建的時候已經命名好的,因此這里要引用template.xml文件中各自控件的變量id:
${ID名}為變量前綴,后面可以加上Contract,Model,Presenter等自己想要的后綴名。
提示兩點:
(2). .java.ftl模板文件中命名需要使用變量,如IContract.java.ftl文件中:
注意,若編碼的時候出現語法錯誤,那么在Android studio中點擊finish生成Activity的時候會直接報錯,查看點擊log可以看到詳細的報錯位置,自己再進行修改就可以了。
最近發現了一款編輯模板的插件,使用起來可以更方便些:https://puke3615.github.io/2017/03/06/TemplateBuilder[Chinese]/
最后附上模板文件:activity模板下載地址