..
展示效果如上图所示。
我们就简单说一下AS或者是说IDEA的插件开发。我们可能都用过一些AS的插件,我比较喜欢也执迷其中的就是一些自动生成代码的插件,解放双手的感觉让人欲罢不能。
1.环境搭建略过,也就IEDA这个软件
2.我们使用IEDA新建一个插件项目:
3.新建一个继承自AnAction的类,并重写
public void actionPerformed(AnActionEvent e) {}
actions的配置文件交代一些基本信息,新建的时候会提供可视化操作界面也可在xml中修改。交代了一些信息,入口Action,
插件的id,插件的名字,插件所在的菜单目录,插件的描述等。
<actions>
<action id="addfieldformexcel" class="MainAction" text="addStringFieldFormExcel0.9.0" description="addStringFieldFormExcel0.9.0">
<add-to-group group-id="WindowMenu" anchor="first"/>
action>
actions>
这个Action的actionPerformed也就是插件程序的入口也就是类似Main函数吧。
我们就再这个Action里声明一个JFrom窗体程序剩下的页面逻辑就交给窗体程序处理了并搞一个接口等待点击确定按钮的回调进行插入字段的操作:
MainFrom test11=new MainFrom(new MainFrom.OnClickListener() {
@Override
public void onClick(String s,String type) {
String[] ss=s.split("\n");
BaseBuilder builder = new FieldBuilder();
builder.build(e, ss,type);
}
});
4.那么我们是如何玩这个窗体程序的呢,其实跟之前的java窗体程序一模一样,那就玩起来吧。
不知道老铁们是不是还记得当年那个东南西北布局,还是有JPanel啥的。其实跟安卓的布局是一样的,一个布局就是提供一种Layout的规则,然后排列控件。
比如我们这个插件需要一个确定按钮,一个组选择器选择public还是private然后就是一个输入框来接受Excel的内容。
我们就拖拽一个形成上图的样子,给控件赋予field name就会自动在代码里生成控件变量不用findviewbyid了哈哈
在这里搞一个接口回调,起个跟安卓点击事件一样的名字找找感觉:
public interface OnClickListener {
void onClick(String s,String type);
}
button点击事件并触发接口回调:
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.print("点击了按钮呢");
String s = textArea1.getText();
if (privateRadioButton.isSelected())
onClickListener.onClick(s,"private");
else onClickListener.onClick(s,"public");
dispose();
}
});
选择按钮组:
ButtonGroup sexRadioButtonGroup = new ButtonGroup(); // 创建一个选按钮组对象
sexRadioButtonGroup.add(privateRadioButton); // 将单选按钮对象添加到按钮组对象中
sexRadioButtonGroup.add(publicRadioButton); // 将单选按钮对象添加到按钮组对象中
5.处理输入字符串:
其实思路很简单,就是根据Excel粘贴进来的字符特性,进行分割处理。并在当前输入类中加入Field。
ArrayList psiFields=new ArrayList<>();
for (int i = 0; i String []sss=ss[i].split("\t");
String s = type+" " + sss[1] + " " + sss[0] + "; // " + sss[2];
PsiField field = factory.createFieldFromText(s, psiClass);
psiFields.add(field);
}
for (int i = 0; i < psiFields.size(); i++) {
psiClass.add(psiFields.get(i));
}
6.大功告成。我们编译以下,发现是又启动了一个IEDA,当然这个是在开发调试模式。编译结束后我们在根目录下会自动生成插件的jar,也就是可以作为插件引入的jar。欢迎体验哈~
Download :https://github.com/AndroidMsky/AddFieldFromExcel/blob/master/AddFieldFromExcel.jar
AS插件开发很强大,如果为自己项目制定独自的开发插件,将会使安卓开发事半功倍,笔者也是刚刚看了一些API才做出这个插件,后续有机会也会做出更加复杂的插件。
插件源码地址:
https://github.com/AndroidMsky/AddFieldFromExcel
觉得有用欢迎点个star,也希望大家提出改进的意见,共同完善这个AddFieldFromExcel插件
哪里可以找到我:
我的Github: https://github.com/AndroidMsky
我的博客主页: http://blog.csdn.net/androidmsky
欢迎加作者自营安卓开发交流群:
308372687