项目源码
https://github.com/boredream/AndroidDatabaseGeneratorPlugin
系列教程
Android Studio Plugin 插件开发教程(一) —— 开发你的第一个插件
Android Studio Plugin 插件开发教程(二) —— 插件SDK中的常用对象介绍
Android Studio Plugin 插件开发教程(三) —— 制作一个自动生成数据库代码的插件
Android Studio Plugin 插件开发教程(四) —— 为自动生成数据库代码的插件添加UI
教程三其实已经完成了插件基本功能的开发,为了更好用,还可以加入可操作的对话框。这次我们新增一个Dialog,可以勾选需要的数据类字段、主键,效果图如下
对话框的新建可以通过 **File | New | Dialog **
输入名字后确认,会自动生成两个类,共同保存在ColumnDialog文件夹中
- XXX.java 页面逻辑控制类
- XXX.form 对话框UI布局样式
有点类似于安卓里的 Activity.java 和 layout.xml 类
.form布局类是可视化编辑的,可以直接从右侧的控件库中拖到UI上,然后在左边的页面中选择对应控件修改属性。
编辑好页面后,就可以在类似于Activity的.java类中处理逻辑了,但不同于Activity里需要findViewById去定位控件,这里是用名字匹配的~
当你在.form上给一个控件的field name指定名称后(参考上图红圈),就会自动在对应的.java文件里生成一个相对的成员变量
当然,和安卓里一样,你可以在form里拖一个控件出来,同样也可以在java类中new一个新的出来
有安卓基础的会很快掌握~ 这些控件都是Java里swing啥的自带的,网上教程也很多,可以自行搜索学习,贴个文档:
https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html
UI部分代码的开发就不详细介绍了,比较简单,详细请参考源码,只简单介绍下思路:
- IDE中点插件的时候解析当前编辑的数据类,将这个Class的成员变量都在对话框中展现出来
- 展现的时候,每个成员变量item都提供一个Checkbox,可以勾选,代表是否作为数据库字段,此外还有单选框表示是否作为主键
- 额外新增一个_ID字段item(继承与BaseColumn类提供的),默认作为主键~ 且Checkbox的enable设为false不能取消勾选
- 提供全选按钮方便操作,此外还有确定和取消按钮
- 确定按钮的点击事件中调用生成代码方法,并传入从对话框中搜集的信息去生成这些代码
- 参考教程(三)的步骤拼接代码并写入到类文件中
注意,这里生成代码的时候有了额外的处理
当默认主键时,只生成add、all list、get all、delete all几个基本方法
而有自定义字段(非_ID字段)作为主键时,额外提供用主键的key去删除和查询数据的方法~