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 *;}
  • 相关阅读:
    P4168 [Violet]蒲公英
    P3320 [SDOI2015]寻宝游戏
    P2487 [SDOI2011]拦截导弹
    P3338 [ZJOI2014]力(FFT)
    P1975 [国家集训队]排队
    P4103 [HEOI2014]大工程
    虚树小结
    LVS初步
    常见指针定义解读
    可epoll队列
  • 原文地址:https://www.cnblogs.com/airry66/p/4402533.html
Copyright © 2011-2022 走看看