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 *;}
  • 相关阅读:
    centos7安装gitlab并汉化
    Centos7系统安装yum遇到的问题failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try. http: (中断yum或者换yum源出问题)
    Git 服务器搭建
    set prompt = "任意匹配字符" 当前目录详解
    java循环嵌套与跳转语句(break,continue)
    java循环语句for与无限循环
    java循环语句while与do-while
    java流程控制语句if
    java引用数据类型之Scanner与Random
    java运算符二
  • 原文地址:https://www.cnblogs.com/airry66/p/4402533.html
Copyright © 2011-2022 走看看