項(xiàng)目源碼
https://github.com/boredream/AndroidDatabaseGeneratorPlugin
系列教程
Android Studio Plugin 插件開發(fā)教程(一) —— 開發(fā)你的第一個(gè)插件
Android Studio Plugin 插件開發(fā)教程(二) —— 插件SDK中的常用對(duì)象介紹
Android Studio Plugin 插件開發(fā)教程(三) —— 制作一個(gè)自動(dòng)生成數(shù)據(jù)庫(kù)代碼的插件
Android Studio Plugin 插件開發(fā)教程(四) —— 為自動(dòng)生成數(shù)據(jù)庫(kù)代碼的插件添加UI
教程三其實(shí)已經(jīng)完成了插件基本功能的開發(fā)精居,為了更好用,還可以加入可操作的對(duì)話框免姿。這次我們新增一個(gè)Dialog即寒,可以勾選需要的數(shù)據(jù)類字段斑响、主鍵,效果圖如下
對(duì)話框的新建可以通過(guò) **File | New | Dialog **
輸入名字后確認(rèn),會(huì)自動(dòng)生成兩個(gè)類楷拳,共同保存在ColumnDialog文件夾中
- XXX.java 頁(yè)面邏輯控制類
- XXX.form 對(duì)話框UI布局樣式
有點(diǎn)類似于安卓里的 Activity.java 和 layout.xml 類
.form布局類是可視化編輯的,可以直接從右側(cè)的控件庫(kù)中拖到UI上吏奸,然后在左邊的頁(yè)面中選擇對(duì)應(yīng)控件修改屬性欢揖。
編輯好頁(yè)面后,就可以在類似于Activity的.java類中處理邏輯了苦丁,但不同于Activity里需要findViewById去定位控件浸颓,這里是用名字匹配的~
當(dāng)你在.form上給一個(gè)控件的field name指定名稱后(參考上圖紅圈),就會(huì)自動(dòng)在對(duì)應(yīng)的.java文件里生成一個(gè)相對(duì)的成員變量
當(dāng)然旺拉,和安卓里一樣产上,你可以在form里拖一個(gè)控件出來(lái),同樣也可以在java類中new一個(gè)新的出來(lái)
有安卓基礎(chǔ)的會(huì)很快掌握~ 這些控件都是Java里swing啥的自帶的蛾狗,網(wǎng)上教程也很多晋涣,可以自行搜索學(xué)習(xí),貼個(gè)文檔:
https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html
UI部分代碼的開發(fā)就不詳細(xì)介紹了沉桌,比較簡(jiǎn)單谢鹊,詳細(xì)請(qǐng)參考源碼算吩,只簡(jiǎn)單介紹下思路:
- IDE中點(diǎn)插件的時(shí)候解析當(dāng)前編輯的數(shù)據(jù)類,將這個(gè)Class的成員變量都在對(duì)話框中展現(xiàn)出來(lái)
- 展現(xiàn)的時(shí)候佃扼,每個(gè)成員變量item都提供一個(gè)Checkbox偎巢,可以勾選,代表是否作為數(shù)據(jù)庫(kù)字段兼耀,此外還有單選框表示是否作為主鍵
- 額外新增一個(gè)_ID字段item(繼承與BaseColumn類提供的)压昼,默認(rèn)作為主鍵~ 且Checkbox的enable設(shè)為false不能取消勾選
- 提供全選按鈕方便操作,此外還有確定和取消按鈕
- 確定按鈕的點(diǎn)擊事件中調(diào)用生成代碼方法瘤运,并傳入從對(duì)話框中搜集的信息去生成這些代碼
- 參考教程(三)的步驟拼接代碼并寫入到類文件中
注意窍霞,這里生成代碼的時(shí)候有了額外的處理
當(dāng)默認(rèn)主鍵時(shí),只生成add拯坟、all list但金、get all、delete all幾個(gè)基本方法
而有自定義字段(非_ID字段)作為主鍵時(shí)郁季,額外提供用主鍵的key去刪除和查詢數(shù)據(jù)的方法~