• Android View注入框架Butter Knife初步介绍

    提升Android开发生产力
    服务器君一共花费 8.900 ms 进行了 3 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    Butter Knife意思是“黄油小刀”,但是在Android社区中,它是由Square.Inc的大牛Jake Wharton设计的视图注入式库。Butter Knife 是一个专注于 Android 系统 View 的注入框架,让你从烦人的 findViewById 中解脱出来。同时还支持 View 的一些事件处理函数。项目地址:http://jakewharton.github.io/butterknife/

    如果你不想写一大堆像下面这样的代码:

    class ExampleActivity extends Activity {  
      TextView title;  
      TextView subtitle;  
      TextView footer;  
      
      @Override public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.simple_activity);  
        title = (TextView) findViewById(R.id.title);  
        subtitle = (TextView) findViewById(R.id.subtitle);  
        footer = (TextView) findViewById(R.id.footer);  
      
        // TODO Use views...  
      }  
    } 
    

    使用 @InjectView 来注解字段,并为Butter Knife提供视图的id来查找和在转换布局中相应的视图

    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);
            // TODO Use "injected" views...
        }
    }
    

    不用担心Butter Knife会低效的放射机制,事实上会生成视图查找的代码。调用 inject 委托生成如下可以查看和调试的代码。

    以上示例会差不多生成如下等价的代码:

    public void inject(ExampleActivity activity) {
        activity.subtitle = (android.widget.TextView) activity.findViewById(2130968578);
        activity.footer = (android.widget.TextView) activity.findViewById(2130968579);
        activity.title = (android.widget.TextView) activity.findViewById(2130968577);
    }
    

    Butter Knife 的特性:

    1. 支持 Activity 中的 View 注入
    2. 支持 View 中的 View 注入
    3. 支持 View 事件回调函数注入

    后面会慢慢介绍这些特性。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [移动开发] Android View注入框架Butter Knife 3 个条目
  2. [PHP程序设计] 对输入文件类型的检测 1 个条目
  3. [智力开发与知识管理] 信息的类型与结构 9 个条目
  4. [移动开发] Android与SQLite数据库 7 个条目
  5. [数据库技术] MySQL中英文混合排序 4 个条目
  6. [移动开发] 简单了解Android Fragment 3 个条目
  7. [移动开发] 刷机与root相关 2 个条目
  8. [PHP程序设计] PHP与Stream流 5 个条目
  9. [移动开发] Android抽屉导航NavigationDrawer 5 个条目
  10. [Python程序设计] Django模板系统 11 个条目
  11. [移动开发] Android Studio的使用技巧 4 个条目
  12. [移动开发] Layout_weight属性解析 5 个条目
窗口 -- [八点]