Android Studio Plugin 插件开发教程(四) —— 为插件添加UI

Posted by boredream on September 8, 2017

教程三其实已经完成了插件基本功能的开发,为了更好用,还可以加入可操作的对话框 这次我们新增一个Dialog,可以勾选需要的数据类字段、主键,效果图如下

plugin19

对话框的新建可以 File | New | Dialog 输入名字后确认生成两个类,如下ColumnDialog就是一个对话框UI文件夹 下面还自动生成的俩类, .java类 和 .form类,前者控制页面逻辑,后者指定对话框UI样式 类似于安卓里的Activity.java和layout.xml类

plugin20

.form布局类是可视化编辑的,可以直接从右侧的控件库中拖到UI上,然后在左边的页面中选择对应控件修改属性 编辑好页面后,就可以在类似于Activity的.java类中处理逻辑 不同于Activity里需要findViewById去定位控件,这里是用名字匹配~ 当你在.form上给一个控件的field name指定名称后,就会自动在对应的.java文件里生成一个相对的成员变量

当然,和安卓里一样,你可以在布局里拖一个控件出来,同样也可以在java文件中new一个新的出来 而具体控件的作用,有安卓基础的会很快掌握~ 无外乎是Button、Image、Text啥的

这些控件都是Java里swing啥的自带的,网上教程也很多,可以咨询搜索学习 这里贴个文档 https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html

UI部分代码的开发就不详细介绍了,比较简单,详细请参考源码 https://github.com/boredream/AndroidDatabaseGeneratorPlugin

简单介绍下思路

  1. 选择插件的时候解析当前数据类PsiClass的成员变量,然后对话框展现出来
  2. 每个成员变量item在UI上提供一个Checkbox,可以勾选是否使用其作为数据库字段,此外还有单选框表示是否作为主键
  3. 额外新增一个_ID字段(继承与BaseColumn类提供的),默认作为主键~ 且Checkbox的enable设为false不能取消勾选
  4. 提供全选按钮方便操作,还有确定和取消按钮
  5. 确定按钮的点击事件中相应代码生成的逻辑,并传入从对话框中搜集的信息
  6. 参考教程(三)的步骤拼接代码并写入到类文件中

注意,这里生成代码的时候有了额外的处理 当默认主键时,只生成add、all list、get all、delete all几个基本方法 而有自定义主键时(不是_ID),额外提供用主键的key去删除和查询数据的方法~