好的插件能加快项目的开发速度,尤其是一些针对重复性的代码的插件,所以在这里向大家推荐2款不错的插件,如果以后发现新的好的插件,还会继续推荐,同时欢迎大家推荐
GsonFormat

GsonFormat是一款将json直接转换成JavaBean的工具,这样就避免了我们经常需要照着接口文档来写实体类bean,而且还要看着不要写错,同时也节省了大量的时间

第一步:安装

首先点击设置按钮,通过File菜单进入设置也行

然后选择Plugins 

在上面输入框输入GsonFormat或者gson都行  然后点击browse

选择GsonFormat 点击右边的install,然后就等待安装完成并且重启

第二步:使用

首先我们创建一个类(类名不限),然后在类中按下alt+insert 或者右键点击generate也行,选择选择gsonformat,或者完全可以直接按快捷键alt+s会弹出一个框,吧得到的json复制进输入框点击ok

在点击ok就能直接生成bean了

我是用以下json生成的bean

  1. {
  2. "people":[
  3. {"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},
  4. {"firstName":"Jason","lastName":"Hunter","email":"bbbb"},
  5. {"firstName":"Elliotte","lastName":"Harold","email":"cccc"}
  6. ]
  7. }

JavaBean

  1. package wang.raye.viewdemo.bean;
  2. import java.util.List;
  3. /**
  4. * Created by Raye on 2016/3/28.
  5. */
  6. public class JsonBean {
  7. /**
  8. * firstName : Brett
  9. * lastName : McLaughlin
  10. * email : aaaa
  11. */
  12. private List<PeopleBean> people;
  13. public List<PeopleBean> getPeople() {
  14. return people;
  15. }
  16. public void setPeople(List<PeopleBean> people) {
  17. this.people = people;
  18. }
  19. public static class PeopleBean {
  20. private String firstName;
  21. private String lastName;
  22. private String email;
  23. public String getFirstName() {
  24. return firstName;
  25. }
  26. public void setFirstName(String firstName) {
  27. this.firstName = firstName;
  28. }
  29. public String getLastName() {
  30. return lastName;
  31. }
  32. public void setLastName(String lastName) {
  33. this.lastName = lastName;
  34. }
  35. public String getEmail() {
  36. return email;
  37. }
  38. public void setEmail(String email) {
  39. this.email = email;
  40. }
  41. }
  42. }

怎么样很方便吧,下面介绍PreIOC

PreIOC

PreIOC是针对PreIOC框架的一个插件,PreIOC是一个预编译的注解框架,关于详细的PreIOC相关资料可以去主页查看git.oschina或者github

第一步:安装

同前面gsonFormat的安装差不多,不过搜索的时候需要搜索PreIOC,目前关于PreIOC的结果只有一个,所以可以选择安装

第二步:使用

使用PreIOC有个前提,就是项目必须要使用了PreIOC 1.0.6版本,之前的老版本不予支持,同时为了避免Bug建议切换到新版,使用PreIOC 1.0.6

  1. compile 'wang.raye.preioc:preioccore:1.0.6'

同时好一个布局,在需要在Activity、Fragment、Adapter需要使用的控件设置好id,然后在布局名称处右键点击generate 

选择Generate PreIOC Injections

在弹出的框中判断是否有需要修改的属性名称和不要引用的id(去掉勾选),如果需要点击事件则勾选OnClick列的checkbox,如果是创建ViewHolder则选择ViewHolder(用于Adapter),点击confirm就能自动生成了,建议打开自动导入,这样Android Studio就会自动导入类中的引用和去掉没用的引用 

以下是我的xml布局和生成的类文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="300dp"
  6. android:layout_height="match_parent"
  7. android:orientation="vertical">
  8. <android.support.v7.widget.CardView
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. app:cardBackgroundColor="#ffffff"
  12. android:layout_marginTop="10dp"
  13. app:cardElevation="3dp"
  14. app:cardMaxElevation="3dp">
  15. <RelativeLayout
  16. android:layout_width="300dp"
  17. android:layout_height="match_parent">
  18. <ImageView
  19. android:id="@+id/iv_head"
  20. android:layout_width="match_parent"
  21. android:layout_height="300dp"
  22. android:layout_margin="5dp"
  23. android:src="@mipmap/b"
  24. android:scaleType="fitXY"/>
  25. <RelativeLayout
  26. android:layout_width="match_parent"
  27. android:layout_height="wrap_content"
  28. android:layout_alignBottom="@id/iv_head"
  29. android:background="#30000000"
  30. android:padding="5dp"
  31. android:layout_marginLeft="5dp"
  32. android:layout_marginRight="5dp">
  33. <TextView
  34. android:id="@+id/tv_age"
  35. android:layout_width="wrap_content"
  36. android:layout_height="wrap_content"
  37. android:textColor="#ffffff"/>
  38. <TextView
  39. android:id="@+id/tv_height"
  40. android:layout_width="wrap_content"
  41. android:layout_height="wrap_content"
  42. android:layout_marginLeft="15dp"
  43. android:layout_toRightOf="@id/tv_age"
  44. android:textColor="#ffffff"/>
  45. <TextView
  46. android:layout_width="wrap_content"
  47. android:layout_height="wrap_content"
  48. android:textColor="#ffffff"
  49. android:id="@+id/tv_info"
  50. android:layout_alignParentRight="true"/>
  51. </RelativeLayout>
  52. <TextView
  53. android:layout_width="match_parent"
  54. android:layout_height="wrap_content"
  55. android:maxLines="2"
  56. android:layout_below="@id/iv_head"
  57. android:layout_margin="10dp"
  58. android:textSize="22sp"
  59. android:minLines="2"
  60. android:ellipsize="end"
  61. android:id="@+id/tv_desc"
  62. android:textColor="#666666"/>
  63. </RelativeLayout>
  64. </android.support.v7.widget.CardView>
  65. <TextView
  66. android:layout_width="90dp"
  67. android:layout_height="36dp"
  68. android:layout_gravity="top|center_horizontal"
  69. android:background="@drawable/test_bg"
  70. android:gravity="center"
  71. android:textSize="22sp"
  72. android:elevation="6dp"
  73. android:id="@+id/tv_name"
  74. android:textColor="#333333"/>
  75. </FrameLayout>

类文件

  1. package wang.raye.viewdemo.ui;
  2. import android.os.Bundle;
  3. import android.support.v4.app.FragmentActivity;
  4. import android.widget.ImageView;
  5. import android.widget.TextView;
  6. import wang.raye.preioc.PreIOC;
  7. import wang.raye.preioc.annotation.BindById;
  8. import wang.raye.preioc.annotation.OnClick;
  9. import wang.raye.viewdemo.R;
  10. public class Test extends FragmentActivity {
  11. @BindById(R.id.iv_head)
  12. ImageView ivHead;
  13. @BindById(R.id.tv_age)
  14. TextView tvAge;
  15. @BindById(R.id.tv_height)
  16. TextView tvHeight;
  17. @BindById(R.id.tv_info)
  18. TextView tvInfo;
  19. @BindById(R.id.tv_desc)
  20. TextView tvDesc;
  21. @BindById(R.id.tv_name)
  22. TextView tvName;
  23. @Override
  24. protected void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26. setContentView(R.layout.activity_test);
  27. PreIOC.binder(this);
  28. }
  29. @OnClick(R.id.iv_head)
  30. public void onClick() {
  31. }
  32. }

Android Studio插件推荐(PreIOC,GsonFormat)的更多相关文章

  1. Android Studio插件推荐-GsonFormat,ButterKnifeZelezny

    原创文章.转载请注明 http://blog.csdn.net/leejizhou/article/details/50557786 本篇介绍的仅仅适用android studio和 Intellij ...

  2. 推荐几款实用的Android Studio 插件

    推荐几款实用的Android Studio 插件 泡在网上的日子 发表于 2015-10-09 10:47 第 17453 次阅读 插件,Android Studio 10 编辑推荐:稀土掘金,这是一 ...

  3. Android studio 插件之 GsonFormat (自己主动生成javabean)

    概述 相信大家在做开发的过程中都写过非常多的javabean ,非常多情况下 都是一个列表数据就是一个单独的javabean.假设大家自己敲的话费时费力 还非常easy敲错. 今天给大家推荐一个插件 ...

  4. 最完整Android Studio插件整理 (转)

    转自:http://blog.csdn.net/alpha58/article/details/62881144 现在Android的开发者基本上都使用android Studio进行开发(如果你还在 ...

  5. 非常有用的开发工具之Android Studio插件

    我们都知道Eclipse开发Android将在今年年底google不再继续提供相应的开发支持,转而开始强烈发展Android Studio,现在我就分享几款能帮助团队提升工作效率的几个Android ...

  6. Android Studio插件:GsonFromat

    这个Android Studio插件可以根据JSONObject格式的字符串,自动生成实体类参数. 具体见:https://github.com/zzz40500/GsonFormat

  7. [精品推荐]Android Studio插件整理

    GOOD 现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行).使用好Android Studio插件能大量的减少我们 ...

  8. 自己编写Android Studio插件 别停留在用的程度了(转载)

    转自:自己编写Android Studio插件 别停留在用的程度了 1概述 相信大家在使用Android Studio的时候,或多或少的会使用一些插件,适当的配合插件可以帮助我们提升一定的开发效率,更 ...

  9. android studio 插件

    引用于:http://www.zhihu.com/question/28026027 adb-idea 支持直接在AS面板中进行ADB操作,个人觉得太实用,上面有哥们已提及,这里再介绍下: Unins ...

随机推荐

  1. jQuery的deferred对象详解(转载)

    本文转载自: jQuery的deferred对象详解(转载)

  2. 郑轻校赛题目 问题 G: 多少个0

    问题 G: 多少个0 时间限制: 1 Sec  内存限制: 128 MB提交: 192  解决: 40 题目描述 一个n*n的方格,每个格子中间有一个数字是2或者5,现在从方格的左上角走到右下角,每次 ...

  3. Unicode、UTF-8、UTF-16和UTF-32的区别

    Unicode是一个巨大的字符集,给世界上所有的字符定义了一个唯一编码.其仅仅规定了每个符号的二进制代码,没有制定细化的存储规则.UTF-8.UTF-16.UTF-32才是Unicode的存储格式定义 ...

  4. 介绍Android HAL的一篇好文章

    从Linux driver到HAL再到JNI再到Java都讲了一个遍,算是对HAL有一个基本的了解了,其中hw_module_t的设计非常巧妙,每个module都会有自己的特定函数,而HAL是不知道的 ...

  5. ssh-keygen -t rsa P “” -f ~/.ssh/id_rsa不提示直接生成密钥

    ssh-keygen -t rsa P "" -f ~/.ssh/id_rsa不提示直接生成密钥

  6. Linux系统使用yum安装nodejs

    先执行: yum install \ http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 再执行: su ...

  7. 输入参数是NSDate,输出结果是星期几的字符串

    给你一个方法,输入参数是NSDate,输出结果是星期几的字符串.+ (NSString*)weekdayStringFromDate:(NSDate*)inputDate { NSArray *wee ...

  8. selenium杀掉浏览器进程方法

    * 杀掉浏览器进程      */     public static void operateWindowsProcess(){         WindowsUtils.tryToKillByNa ...

  9. 車(rook)

    [题目分析] JustPenz:我们假设n>m(不大于就交换),那最多能摆m个,所以会有(n-m)个空白,我们把这些空白插入到n中,答案就是C(n,n-m)=C(n,m);数据范围比较大,我们就 ...

  10. C 语言中用bsearch()实现查找操作

    C语言中可以用bsearch()实现二分查找.同qsort()一样,bsearch()也包含在库中,且同样要自定义比较子函数.其原型如下: void *bsearch(const void *key, ...