zoukankan      html  css  js  c++  java
  • ButterKnife的使用

    1.在Activity中使用注解
    class ExampleActivity extends Activity {
      @InjectView(R.id.title) TextView title;
      @InjectView(R.id.subtitle) TextView subtitle;
      @InjectView(R.id.footer) TextView footer;
     
      @Override 
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.simple_activity);
        ButterKnife.inject(this);
      }
    }
    
    2.Fragment中使用注解
    public class FancyFragment extends Fragment {
      @InjectView(R.id.button1) Button button1;
      @InjectView(R.id.button2) Button button2;
     
      @Override 
      View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fancy_fragment, container, false);
        ButterKnife.inject(this, view);
        return view;
      }
    }
    
    3.Adapter中使用注解
    public class MyAdapter extends BaseAdapter {
      @Override 
      public View getView(int position, View view, ViewGroup parent) {
        ViewHolder holder;
        if (view != null) {
          holder = (ViewHolder) view.getTag();
        } else {
          view = inflater.inflate(R.layout.whatever, parent, false);
          holder = new ViewHolder(view);
          view.setTag(holder);
        }
     
        holder.name.setText("John Doe");
        return convertView;
      }
     
      static class ViewHolder {
        @InjectView(R.id.title) TextView name;
        @InjectView(R.id.job_title) TextView jobTitle;
     
        public ViewHolder(View view) {
          ButterKnife.inject(this, view);
        }
      }
    }
    
    4.点击事件注入
    @OnClick(R.id.submit)
    public void sayHi(Button button) {
      button.setText("Hello!");
    }
    
    5.多个控件具有相同的事件
    @OnClick({ R.id.door1, R.id.door2, R.id.door3 })
    public void pickDoor(DoorView door) {
      if (door.hasPrizeBehind()) {
        Toast.makeText(this, "You win!", LENGTH_SHORT).show();
      } else {
        Toast.makeText(this, "Try again", LENGTH_SHORT).show();
      }
    }
    
    6.使用ButterKnife混淆时proguard-project.txt配置
    -dontwarn butterknife.internal.**
    -keep class **$$ViewInjector { *; }
    -keepnames class * { @butterknife.InjectView *;}
  • 相关阅读:
    mysql中的round函数的使用
    mysql中日期函数的处理,datediff()函数 与 timestampdiff()函数的区别 及使用。
    easyui datagrid 自定义editor
    好的产品 跟 好的 设计师 很类似
    music
    gd库复制图片做水印
    用gd库画矩形和椭圆
    默认安装wamp修改MySQL密码
    中文验证码
    验证码
  • 原文地址:https://www.cnblogs.com/airry66/p/4402533.html
Copyright © 2011-2022 走看看