zoukankan      html  css  js  c++  java
  • Butter Knife学习总结

    官网:http://jakewharton.github.io/butterknife/

    1.NON-ACTIVITY BINDING

    You can also perform binding on arbitrary objects by supplying your own view root.

     1 class ExampleActivity extends Activity {
     2   @BindView(R.id.title) TextView title;
     3   @BindView(R.id.subtitle) TextView subtitle;
     4   @BindView(R.id.footer) TextView footer;
     5 
     6   @Override public void onCreate(Bundle savedInstanceState) {
     7     super.onCreate(savedInstanceState);
     8     setContentView(R.layout.simple_activity);
     9     ButterKnife.bind(this);
    10     // TODO Use fields...
    11   }
    12 }

    2.NON-ACTIVITY BINDING

    You can also perform binding on arbitrary objects by supplying your own view root.

    You can also perform binding on arbitrary objects by supplying your own view root.

    Bind pre-defined resources with @BindBool@BindColor@BindDimen@BindDrawable,@BindInt@BindString, which binds an R.bool ID (or your specified type) to its corresponding field.

    1 class ExampleActivity extends Activity {
    2   @BindString(R.string.title) String title;
    3   @BindDrawable(R.drawable.graphic) Drawable graphic;
    4   @BindColor(R.color.red) int red; // int or ColorStateList field
    5   @BindDimen(R.dimen.spacer) Float spacer; // int (for pixel size) or float (for exact value) field
    6   // ...
    7 }

    3.NON-ACTIVITY BINDING

    You can also perform binding on arbitrary objects by supplying your own view root.

      

     1 public class FancyFragment extends Fragment {
     2   @BindView(R.id.button1) Button button1;
     3   @BindView(R.id.button2) Button button2;
     4 
     5   @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     6     View view = inflater.inflate(R.layout.fancy_fragment, container, false);
     7     ButterKnife.bind(this, view);
     8     // TODO Use fields...
     9     return view;
    10   }
    11 }

    4.Another use is simplifying the view holder pattern inside of a list adapter.

     1 public class MyAdapter extends BaseAdapter {
     2   @Override public View getView(int position, View view, ViewGroup parent) {
     3     ViewHolder holder;
     4     if (view != null) {
     5       holder = (ViewHolder) view.getTag();
     6     } else {
     7       view = inflater.inflate(R.layout.whatever, parent, false);
     8       holder = new ViewHolder(view);
     9       view.setTag(holder);
    10     }
    11 
    12     holder.name.setText("John Doe");
    13     // etc...
    14 
    15     return view;
    16   }
    17 
    18   static class ViewHolder {
    19     @BindView(R.id.title) TextView name;
    20     @BindView(R.id.job_title) TextView jobTitle;
    21 
    22     public ViewHolder(View view) {
    23       ButterKnife.bind(this, view);
    24     }
    25   }
    26 }
  • 相关阅读:
    Android Camera子系统之Linux C应用开发人员View
    【Android】把外部文件拷贝的AVD安卓模拟器上的sdcard上,而且在AVD中浏览sdcard的文件
    HDU 2196 Computer(求树上每一个节点到其他点的最远距离)
    HDU 4081 Qin Shi Huang's National Road System 最小生成树
    scala 变量定义,基本操作符
    mybatis or
    Nginx
    hessian协议原理
    同一台电脑上装两个或两个以上的tomcat服务器
    端口号
  • 原文地址:https://www.cnblogs.com/androidstudy/p/5488863.html
Copyright © 2011-2022 走看看