框架地址:https://github.com/yangfuhai/afinal
对应的源码:
net.tsz.afinal.annotation.view.*
FinalActivity
FinalActivity是一个基础类,结合注解实现了,依赖注入(view的资源id,常用的监听器), 利用set方式注入
完全注解方式就可以进行UI绑定和事件绑定,无需findViewById和set event Listener
这个过程:initInjectedView>findViewById、setListener(activity, activity.field, eventLocalMethod, eventType)>
1.根据id得到view对象,设置到activity对应的field中
2. switch(eventType) {
case event:
view.set event listener(new EventListener(activity, eventLocalMethod));
EventListener implements many event listener>
在对应的event的重写方法中,反射调用eventLocalMethod
这些eventLocalMethod 的参数需要与 对应的系统 event method 的参数一致
...
}
注解有哪些类型:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ViewInject {
public int id();
public String click() default "";
public String longClick() default "";
public String itemClick() default "";
public String itemLongClick() default "";
public Select select() default @Select(selected="") ;
}
调用注解:
package com.stone.afinal;
import net.tsz.afinal.FinalActivity;
import net.tsz.afinal.annotation.view.Select;
import net.tsz.afinal.annotation.view.ViewInject;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.ListView;
public class MainActivity extends FinalActivity {
@ViewInject(
id = R.id.imageview,
click = "myClick",
longClick = "myLongClick")
ImageView imageview;
@ViewInject(
id = R.id.listview,
click = "myClick",
itemLongClick = "myItemLongClick",
itemClick = "myItemClick",
longClick = "myLongClick",
select = @Select(selected="myItemSelected", noSelected="myNoSelected"))
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//继承FinalActivity,setContentView中初始化了
}
public void myClick(View v) {
System.out.println("--myClick--");
}
public void myLongClick(View v) {
System.out.println("--myLongClick--");
}
public void myItemLongClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
System.out.println("--myItemLongClick--");
}
public void myItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
System.out.println("--myItemClick--");
}
public void myItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
System.out.println("--myItemSelected--");
}
public void myNoSelected(AdapterView<?> arg0) {
System.out.println("--myNoSelected--");
}
}
在其他侵入式框架下使用(如ActionBarShelock)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(view);
FinalActivity.initInjectedView(this);
}
在Fragment中使用
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View viewRoot = inflater.inflate(R.layout.map_frame, container, false);
FinalActivity.initInjectedView(this,viewRoot);
}
分享到:
相关推荐
1、afinal是android中一个设计小巧的android...3、里面包含了一个ioc框架,自动绑定android布局文件和代码的控件,同时支持对事件的绑定功能 4、里面包含了一个轻量级的http框架,对http请求只要一行代码就可以完成。
Android afinal框架资料和jar包
Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载...
Afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少。在android应用开发中,通过Afinal的ioc框架,诸如ui绑定,事件绑定,通过注解可以自动绑定。通过Afinal的orm框架,无需任何...
安卓Android源码——afinal框架实现图片的简单异步缓存加载.zip
Afinal 是一个android的sqlite orm 和 ioc 框架。同时封装了android中的http框架,使其更加简单易用; 使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题。 ...
3、里面包含了一个ioc框架,自动绑定android布局文件和代码的控件,同时支持对事件的绑定功能 4、里面包含了一个轻量级的http框架,对http请求只要一行代码就可以完成。 afinal源码地址 ...
Afinal 是一个android的 orm 和 ioc 框架。而且封装了android中的httpClient,使其更加简单易用。使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题。
afinal框架实现图片的简单异步缓存加载.rar
Android afinal开源框架实例源码.zip源码资源下载Android afinal开源框架实例源码.zip源码资源下载
Android afinal开源框架实例源码.rar
Android程序研发源码Android afinal开源框架实例源码.rar
Android afinal开源框架实例源码.zip
android的开发框架,主要是实现了代码在sqllite,实体的初始化等方面的简单实现功能
NULL 博文链接:https://274137570-qq-com.iteye.com/blog/2298156
Android afinal开源框架实例源码.zip项目安卓应用源码下载Android afinal开源框架实例源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
Afinal是一个orm、ioc框架,遵循约定大于配置原则,无需任何配置即可完成所有工作,但也可以通过配置达到个人的个性化需求。Afinal提倡代码快速简洁,尽量一行代码完成的事情不会用两行。 Afinal里面目前包含了四大...
Android应用源码之Android快速框架+多线程下载框架的技术(Android + Afinal+gson).rar