zoukankan      html  css  js  c++  java
  • Android商城开发系列(四)——butterknife的使用

      在上一篇博客:Android商城开发系列(三)——使用Fragment+RadioButton实现商城底部导航栏实现商城的底部导航栏时,里面用到了butterknife,今天来讲解一下的butterknife使用

    一、butterknife基本概念

      butterknife是一个依赖注入框架,可以省去我们findviewbyid()操作,哈哈~俗话说:“不会偷懒的程序员不是好的程序员!”。作为一名Android开发,是不是经常厌烦了大量的findViewById以及setOnClickListener代码,而ButterKnife是一个专注于Android系统的View注入框架,让你从此从这些烦人臃肿的代码中解脱出来。 

    二、示例代码

      先来看一段代码示例说明下ButterKnife是如何简化代码的:

      采用findViewById( )方法产生的代码: 

    package com.nyl.shoppingmalltest;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    
    public class MainActivity extends Activity {
    
        private RadioGroup rg_main;
        private RadioButton rb_home;
        private RadioButton rb_type;
        private RadioButton rb_community;
        private RadioButton rb_user;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //初始化布局
            rg_main = (RadioGroup) findViewById(R.id.rg_main);
            rb_home = (RadioButton) findViewById(R.id.rb_home);
            rb_type = (RadioButton) findViewById(R.id.rb_type);
            rb_community = (RadioButton) findViewById(R.id.rb_community);
            rb_user = (RadioButton) findViewById(R.id.rb_user);
        }
    }

      而用ButterKnife之后的代码是这样的:

    package com.nyl.shoppingmall.activity;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.FrameLayout;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    
    import com.nyl.shoppingmall.R;
    
    import butterknife.Bind;
    import butterknife.ButterKnife;
    
    public class MainActivity extends Activity {
        @Bind(R.id.frameLayout)
        FrameLayout frameLayout;
        @Bind(R.id.rb_home)
        RadioButton rbHome;
        @Bind(R.id.rb_type)
        RadioButton rbType;
        @Bind(R.id.rb_community)
        RadioButton rbCommunity;
        @Bind(R.id.rb_user)
        RadioButton rbUser;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //ButterKnife和当前Activity绑定
            ButterKnife.bind(this);
          
        }
    }

    三、用法

      在Android编程过程中,我们会写大量的布局和点击事件,像初始view、设置view监听这样简单而重复的操作让人觉得麻烦类,所以可以采用注解的方式去实现,而ButterKnife则是注解中相对简单易懂的很不错的开源框架,接下来就介绍一下如何使用。

    3.1 Module 里的 build.gradle 里面引入butterknife

      compile 'com.jakewharton:butterknife:7.0.1'

      

    3.2 安装 butterknife插件

      在 Setting->Plugins 中输入 butterknife 添加插件,如下图:

      

      接着就是下载,如下图:

      

      完成后,如下图所示:

      

      安装完成之后重启AndroidStudio

      见证奇迹的时刻来了,把光标定在setContentView(R.layout.activity_main);然后点击Code→Generate,如下图:

      

      勾选需要生成的元素,如下图所示:

      

      点击Confim就会生成如下图所示代码:

      

      这就是 Butterknife以及关于Butterknife插件的用法,很简单也很方便,推荐大家在开发中使用Butterknife框架去提高开发效率

  • 相关阅读:
    BZOJ 1050 旅行
    BZOJ 1040 骑士
    BZOJ 1038 瞭望塔
    BZOJ 1037 生日聚会
    BZOJ 1823 满汉全席
    BZOJ 3091 城市旅行
    CF702E Analysis of Pathes in Functional Graph
    Luogu 2154 [SDOI2009]虔诚的墓主人
    Luogu 1268 树的重量
    Luogu 4867 Gty的二逼妹子序列
  • 原文地址:https://www.cnblogs.com/nylcy/p/6590478.html
Copyright © 2011-2022 走看看