注解
来源:互联网 发布:java判断字符等于空格 编辑:程序博客网 时间:2024/06/13 11:17
定义注解
//定义注解类型:类,属性,方法@Target(ElementType.FIELD)//注解可见时候,一般运行时可见@Retention(RetentionPolicy.RUNTIME)public @interface Id {}
使用注解
public class Bean { @Id private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } }
注解定位和反射取值
public class Use{ public int a; public void setA(Bean bean){ Class clazz = bean.getClass(); Field[] fields = clazz.getDeclaredFields(); for (Field field:fields){ if (field.getAnnotation(Id.class) != null){ field.setAccessible(true); a = field.getInt(bean); } }}}
ButterKnife
1.配置:
compile ‘com.jakewharton:butterknife:6.1.0’
2.绑定事件:
activity:
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.demo_butter_knife); ButterKnife.inject(this);}
fragment:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_simple, container, false); ButterKnife.inject(this, view); return view; }
这个必须记得在onDestroyView中重置一下ButterKnife.reset(this);
viewHolder:
public static class ViewHolder { public ViewHolder(View view) { ButterKnife.inject(this, view); }@InjectView(R.id.person_name) TextView name; @InjectView(R.id.person_age) TextView age; }
3.功能:
- 不用写findViewById
id找不到时会在编译时报错,view变量声明不能为private,static
@InjectView(R.id.butter_text_view_2) TextView mTextView2;
- 不用写setOnClickListener
还有ListView的@OnItemClick, CheckBox的@OnCheckedChanged等;
方法不能为private,static;
可绑定多个id;所以Listener参数都是optional,可写可不写;
@OnClick({R.id.button,R.id.button2}) void finishA(View view) { finish(); }
- 组建View List
可同时获取多个view放入list
@InjectViews({R.id.first_name, R.id.middle_name, R.id.last_name})List nameViews;
4.apply()方法(要用再说)
共有3种形式:即Action, Setter和Property三种
0 0
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解
- 注解。
- 注解
- 注解
- 注解
- 注解
- oracle 面试题
- 解决mysql无法远程登录的问题
- 平衡二叉树的简单建立--示例
- 暑假已开始,读书也开始
- 线性表的顺序表示和实现(定长顺序表)
- 注解
- Android SurfaceView用法
- JAVA 动态代理(proxy)的实现和源码分析
- FusionChart
- Class.getSimpleName()的作用
- Qt/C++ 数据库SQL 增删改查 语句示例
- Read N Characters Given Read4 II - Call multiple times
- jdbc.properties文件的配置
- Django 模板