Android高效率编码-findViewById()的蜕变-注解,泛型,反射

Android的老朋友findViewById()篇!

先看看他每天是在干什么

    //好吧,很多重复的,只不过想表达项目里确实有很多控件    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);    mDrawerList = (ListView) findViewById(R.id.laft_drawer);    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);    mDrawerList = (ListView) findViewById(R.id.laft_drawer);    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);    mDrawerList = (ListView) findViewById(R.id.laft_drawer);    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);    mDrawerList = (ListView) findViewById(R.id.laft_drawer);    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);    mDrawerList = (ListView) findViewById(R.id.laft_drawer);    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

1.泛型

//自己定义一个方法public <T> T $(int viewID) {    return (T) findViewById(viewID);}

然后使用的时候是这个样子的,其实就是简化了一个findViewById()罢了

    mDrawerLayout = $(R.id.drawer_layout);    mDrawerList = $(R.id.laft_drawer);    mDrawerLayout = $(R.id.drawer_layout);    mDrawerList = $(R.id.laft_drawer);    mDrawerLayout = $(R.id.drawer_layout);    mDrawerList = $(R.id.laft_drawer); 

2.注解

注解的方法现在很流行,而且很多开源框架已经支持注解了,我就以Android Annotations框架为例,当然他不光只是能注解控件,还能做更多的事情,比如事件绑定,异步线程与UI线程的交互等...

这里提供一个架包的下载地址:http://download.csdn.net/detail/qq_26787115/9362755

初始化控件

    //初始化控件    @ViewById(R.id.button1)    private Button button1;    @ViewById(R.id.button1)    private Button button2;    @ViewById(R.id.editText1)    private EditText editText1;

3.反射

http://www.mzule.com/%E4%BD%BF%E7%94%A8injectview%E5%92%8Cfindviewbyid%E8%AF%B4%E6%8B%9C%E6%8B%9C/

其实Android studio 上插件是可以一键生成findViewById的,详情可以看我的博文:http://blog.csdn.net/qq_26787115/article/details/50242501

反射、注解总会降低效率, 在Android Studio开发环境下,只需输入一个f 就会智能提示出findviewbyid了,十分方便,而且用插件一键生成,也省事!
博文有错误请评论指出,不甚感激!

更多相关文章

  1. android:layout_weight属性详解
  2. 我使用过的 控件的一些特性(layout_weight,paddingleft)
  3. android 控件的使用 备注
  4. Android(安卓)电话的反射调用机制实现静默接听电话
  5. 在 Android(安卓)中使用各种控件(View)
  6. Android(安卓)布局 之 LinearLayout
  7. Android(安卓)View和ViewGroup的关系
  8. Android:控件布局(线性布局)LinearLayout
  9. A06_RelativeLayout的属性设置

随机推荐

  1. Android(安卓)4.0 界面
  2. Android本地视频播放器开发--ffmpeg解码
  3. Android的ADB工具使用
  4. Android中原生WebView与HTML5 里的 JS交
  5. android可拉伸图片处理(.9.png)格式的图
  6. Android(安卓)AsyncTask完全解析,带你从源
  7. Android(安卓)adb shell 命令
  8. Android系统启动研究1
  9. Android中播放GIF动画
  10. Android多线程下载远程图片