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 }
  • 相关阅读:
    "use strict"
    jquery.is()
    $.proxy
    windows检测文件夹是否更新.bat脚本 windows循环检查文件夹
    linux下串口多线程通信 ,多串口收发数据错乱问题解决办法
    linux串口配置详解
    linux socket 程序被ctrl+c或者异常终止,提示:bind error:Address already in use,解决办法
    linux下包含自定义.c文件 调用报错未定义解决办法
    linux下对一个文件写完马上读取,读到空白
    linux 下socket通信,client断开service退出解决办法
  • 原文地址:https://www.cnblogs.com/androidstudy/p/5488863.html
Copyright © 2011-2022 走看看