赞
踩
Afinal框架内置了四大模块功能:
1. FinalActivity:可通过注解技术为Activity的 View成员变量绑定一个指定id的View,同时也可以为这个View成员注册事件监听器。省去了我们之前使用findViewById()绑定View以及使用setOnXXX()为View注册监听器。尤其是当Activity的View成员比较多的时候,可以为我们省去很多findViewById(),setOnXXX()这样重复的语句,从而减少代码的冗余。
2. FinalDb:通过orm(对象关系映射 Object Relational Mapping)技术,使我们可以一行代码实现对Sqlite数据库的增删改查。且支持一对多,多对一等查询。
3. FinalBitmap:通过使用lru算法管理内存,多线程加载Bitmap,支持缓存并可配置线程数量、缓存大小,缓存路径,无需考虑oom和图片错位现象,可自定义加载动画。
4. FinalHttp:通过HttpClient对http请求进行封装,支持ajax方式加载。
注意事项:使用Afinal快速开发框架需要如下两个权限。
(1)访问网络权限(http请求网络时用)
<uses-permissionandroid:name="android.permission.INTERNET" />
(2)访问sdcard权限(图片缓存时用)
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />
一、FinalActivity模块设计思路:
FinalActivity模块的作用就是通过注解为Activity的View类型的成员属性绑定一个View,如果这个View需要某事件监听器则同时为其注册事件监听器。所以设计此模块的思路自然是如何设计注解,并且如何实现View的绑定和事件监听器的注册。
第一步:在项目源代码的根目录下定义FinalActivity类,并且设计成抽象类。
设计成抽象类的目的是为了让继承它的Activity类可以使用FinalActivity模块的功能
- public abstract class FinalActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- }
-
- }
第二步:在项目源代码的annotation/view包下新建注解,注解中要包含View的id和支持的事件处理方法名。
ViewInject注解:
- @Target(ElementType.FIELD)
- @Retention(RetentionPolicy.RUNTIME)
- /**
- * 这是一个注解 ,只能标记在属性字段上,且保留到运行时,说明可以通过反射获取注解的属性值
- */
- public @interface ViewInject {
- public int id(); //View的id
- public String click() default "";//点击事件处理方法名,默认为空串
- public String longClick() default "";//长按事件处理方法名,默认为空串
- public String itemClick() default "";//条目点击事件处理方法名,默认为空串
- public String itemLongClick() default "";//条目长近事件处理方法名,默认为空串
- public Select select() default @Select(selected="") ;//这里又设计了一个注解,代表条目选中和取消选中方法名,默认选中方法名为空串
- }
-
Select注解:
- @Target(ElementType.FIELD)
- @Retention(RetentionPolicy.RUNTIME)
- /**
- * 是否被选中的注解
- */
- public @interface Select {
-
- public String selected(); //条目选中事件方法名
- public String noSelected() default "";//条目取消选中事件方法名,默认为空串
-
- }
-
第三步:在项目源代码的annotation/view包下设计事件监听总控制类,对外统一使用这个总控制类为View注册事件监听器。(目前Afinal框架只支持点击事件,长按事件,条目点击事件,条目长按事件,条目选中事件,条目取消选中事件)
1、创建EventListener类,实现Afinal支持的几个事件监听器接口,实现各自的抽象方法。
- public class EventListener implements View.OnClickListener ,View.OnLongClickListener,AdapterView.OnItemClickListener,AdapterView.OnItemLongClickListener,AdapterView.OnItemSelectedListener{
- @Override
- public void onClick(View v) {
-
- }
-
- @Override
- public boolean onLongClick(View v) {
- return false;
- }
-
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-
- }
-
- @Override
- public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
- return false;
- }
-
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
-
- }
-
- @Override
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。