ViewUtils模块的使用

参考一:http://fanli7.net/a/bianchengyuyan/C__/20131102/439000.html

参考二:http://www.eoeandroid.com/blog-692530-48289.html

今天在看某android源码时,才头一次发现可以这样使用,SO,参考了两篇解释详细的文章做个记录。

  • ViewUtils模块:

    • android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
    • 新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
    • 目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。

  ViewUtils  android中得ioc(控制反轉)框架,可以完全使用注解的方式來完成UI的绑定和事件绑定。簡單的說,ViewUtils的功能就是做這個的,但是可以說,就這麼個功能確是能極大的簡化我們的代碼。

下面我們看下具體的代碼,順便對比下注解的方式绑定ID和findViewById之間的差別。

 1 @ViewInject(R.id.btn)
 2     private Button btn;
 3
 4     @ViewInject(R.id.img)
 5     private ImageView img;
 6
 7     @ViewInject(R.id.list)
 8     private ListView list;
 9
10     @Override
11     protected void onCreate(Bundle savedInstanceState) {
12         super.onCreate(savedInstanceState);
13         setContentView(R.layout.activity_second);
14         ViewUtils.inject(this);
15     }

ViewUtils

 1     @Override
 2     protected void onCreate(Bundle savedInstanceState) {
 3         super.onCreate(savedInstanceState);
 4         setContentView(R.layout.activity_second);
 5
 6         btn = (Button) findViewById(R.id.btn);
 7         img = (ImageView) findViewById(R.id.img);
 8         list = (ListView) findViewById(R.id.list);
 9
10     }

Normal

如果項目中得Activity中的控件相當多,那麼想象一下代碼中累積的那一大坨就真心受不了。通過xUtils的簡單注解,就能輕松擺脫無盡壞味道的代碼。

注意:在使用注解绑定控件的時候,一定記得在onCreate中調用ViewUtils.inject(this);

下面我們再對比下Android中事件绑定的區別。

 1     @OnClick({ R.id.btn, R.id.img })
 2     public void clickMethod(View v) {
 3         Toast.makeText(SecondActivity.this, "you clicked button!",
 4                 Toast.LENGTH_SHORT).show();
 5     }
 6
 7     @OnItemClick(R.id.list)
 8     public void itemClick(AdapterView<?> parent, View view, int position,long id) {
 9         Toast.makeText(SecondActivity.this, "position--->" + position,
10                 Toast.LENGTH_SHORT).show();
11     }

ViewUtils

 1 btn.setOnClickListener(this);
 2         list.setOnItemClickListener(new OnItemClickListener() {
 3             @Override
 4             public void onItemClick(AdapterView<?> parent, View view,
 5                     int position, long id) {
 6                 Toast.makeText(SecondActivity.this, "position--->" + position,
 7                         Toast.LENGTH_SHORT).show();
 8             }
 9         });
10     @Override
11     public void onClick(View v) {
12         switch (v.getId()) {
13         case R.id.btn:
14             Toast.makeText(SecondActivity.this, "you clicked button!",
15                     Toast.LENGTH_SHORT).show();
16             break;
17         default:
18             break;
19         }
20     }

Normal

原本绑定Button的監聽事件要麼用醜陋的內部類,要麼Activity實現OnClickListener,在复寫的onClick方法中去根據id。而xUtils只要通過簡單的一句注解就能實現監聽事件的功能,而且可以實現多個控件共用一個監聽方法。同時xUtils提供onClick、onItemClick、onLongClick等15種事件監聽注解。

注意:在使用注解監聽事件的時候,監聽方法名是自定義的,但是一定要保證方法的訪問修飾符为public,同時方法的参數要與Android原來的監聽方法参數一致,不僅参數類型,而且要保證参數的順序。

时间: 2024-08-30 04:58:03

ViewUtils模块的使用的相关文章

xUtils介绍 -- DbUtils、ViewUtils、HttpUtils、BitmapUtils

转载注明出处:https://github.com/wyouflf/xUtils xUtils简单介绍 xUtils 包括了非常多有用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,很多其它的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8) 眼下xUtils主要有四大模块: DbUtils模块: android中的orm框架,一行代码就能够进行增删改查: 支持事务,默

xUtils中用DbUtils,ViewUtils的用法

一.有关xUtils的简介 xUtils 包含了很多实用的android工具.xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUitls最低兼容android 2.2 (api level 8) 二.总共包含4个功能模块: (1)DbUtils模块: android中的orm框架,一行代码就可以进行增删改查:支持事务,默认关闭:可通过注解自定义表名,列

Android 最火开发框架 xUtils

xUtils简介 xUtils3 api变化较多, 已转至 https://github.com/wyouflf/xUtils3 xUtils 2.x对Android 6.0兼容不是很好, 请尽快升级至xUtils3. xUtils 包含了很多实用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8) 目前xUtils主

Android之常用开发框架

1.Rajawali介绍:安卓的OpenGL ES 2.0/3.0 引擎.可以用于制作普通应用或者动态壁纸,当然也可以用于制作游戏.项目地址: https://github.com/Rajawali/Rajawali 2.RxAndroid介绍:RxAndroid是RxJava的一个针对Android平台的扩展.它包含了一些能够简化Android开发的工具.项目地址: https://github.com/ReactiveX/RxAndroid3.Paginize介绍:Paginize 是一个轻

Android Xutils 框架

Android Xutils 框架 (转) 目录(?)[-] xUtils简介 目前xUtils主要有四大模块 使用xUtils快速开发框架需要有以下权限 混淆时注意事项 DbUtils使用方法 ViewUtils使用方法 HttpUtils使用方法 普通get方法 使用HttpUtils上传文件 或者 提交数据 到服务器post方法 使用HttpUtils下载文件 BitmapUtils 使用方法 其他更多示例代码见sample文件夹中的代码 输出日志 LogUtils xUtils简介 xU

Xutils的简单总结

## xUtils简介* xUtils 包含了很多实用的android工具.* xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响.* xUitls最低兼容android 2.2 (api level 8) ## 目前xUtils主要有四大模块: * DbUtils模块: > * android中的orm框架,一行代码就可以进行增删改查: > * 支持事务,默认关闭: &g

Android:XUtils框架的简单应用

XUtils是目前git上比较活跃 功能比较完善的一个框架,是基于afinal开发的,比afinal稳定性提高了很多. xUtils简介 xUtils 包含了很多实用的android工具. xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls最低兼容android 2.2 (api level 8) 目前xUtils主要有四大模块: DbUti

Android学习之初识xUtils

今天学习了xUtils,总结一下,学而时复习之. xUtils简介 xUtils 包含了很多实用的android工具. xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8)目前xUtils主要有四大模块: DbUtils模块 android中的orm框架,一行代码就可以进行增删改查:支持事务,默认关闭:可通过注解自定义表名,列名,外键,唯一性

android 开源框架xUtils

首先查到的博客地址:  http://zxs19861202.iteye.com/blog/2003241 Github地址: https://github.com/wyouflf/xUtils xUtils简介 xUtils 包含了很多实用的android工具. xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls最低兼容android 2.