zoukankan      html  css  js  c++  java
  • ButterKnife注入注解框架用法

    Android 依赖注入 ButterKnife 基本使用 - 渐行渐远渐无声 - 博客园
    http://www.cnblogs.com/fansen/p/5653887.html

    ButterKnife使用详解 - ITjianghuxiaoxiong的专栏 - 博客频道 - CSDN.NET
    http://blog.csdn.net/itjianghuxiaoxiong/article/details/50177549

    JakeWharton/butterknife: Bind Android views and callbacks to fields and methods.
    https://github.com/JakeWharton/butterknife

    avast/android-butterknife-zelezny: Android Studio plug-in for generating ButterKnife injections from selected layout XML.
    https://github.com/avast/android-butterknife-zelezny

    Sample Code:

    public class MainActivity extends AppCompatActivity {
    
        @BindView(R.id.edit_name)
        EditText userName;
    
        @BindView(R.id.edit_pass)
        EditText password;
    
        @BindView(R.id.tv_hint)
        TextView hintTxt;
    
        @BindView(R.id.btn_confirm)
        Button confirmBtn;
    
        @BindView(R.id.checkbox)
        CheckBox checkBox;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    //        setContentView(R.layout.activity_main);
            setContentView(R.layout.mylayout);
            ButterKnife.bind(this);
    
        }
    
        @OnClick(R.id.btn_confirm)
        public void onClick() {  // or submit() ...
            Toast.makeText(this, "信息提交中!", Toast.LENGTH_SHORT).show();
            if ( TextUtils.isEmpty(userName.getText()) || TextUtils.isEmpty(password.getText()) ) {
                hintTxt.setText("用户名或密码为空");
                hintTxt.setTextColor(Color.RED);
                hintTxt.setVisibility(View.VISIBLE);
            }
        }
    
    //    onCheckedChanged impl method 1
        @OnCheckedChanged(R.id.checkbox)
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {
                //选择状态 显示明文--设置为可见的密码
                password.setTransformationMethod(
                        HideReturnsTransformationMethod.getInstance() );
            } else {
                //默认状态显示密码为不可见的黑点
                password.setTransformationMethod(
                        PasswordTransformationMethod.getInstance() );
            }
        }
    
        //    onCheckedChanged impl method 2
        public void onCheckedChanged2(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {
                //选择状态 显示明文--设置为可见的密码
                password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
            } else {
                //默认状态显示密码为不可见的黑点
                password.setInputType(InputType.TYPE_CLASS_TEXT |
                        InputType.TYPE_TEXT_VARIATION_PASSWORD);
            }
        }
    
    }

    Zelezny插件的使用

    在AndroidStudio->File->Settings->Plugins->搜索Zelezny下载添加就行 ,可以快速生成对应组件的实例对象,不用手动写。使用时,在要导入注解的Activity 或 Fragment 或 ViewHolder的layout资源代码上,右键——>Generate——Generate ButterKnife Injections,然后就出现如图的选择框。(此动态图来自官网)

  • 相关阅读:
    orcle id和执行计划(转)
    mysql 授权
    nginx+php 安装手册
    为 MySQL 增加 HTTP/REST 客户端:MySQL UDF 函数 mysql-udf-http 1.0 发布
    Nginx提示502和504错误的解决方案
    error while loading shared libraries: xxx.so.x"错误的原因和解决办法
    lnmp memcache出问题
    Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
    Nginx代理与负载均衡配置与优化
    curl+ post/get 提交
  • 原文地址:https://www.cnblogs.com/bluestorm/p/6650730.html
Copyright © 2011-2022 走看看