为界面写一个类,此类不同于activity或者fragment,只要activity或者fragment提供上下文参数和根视图参数给它就可以实现各种空间的实例化,事件的设置监听
1、构造函数传入参数
public class MyView{
private Context mContext;
private View myRingView;
public MyView(Context ctx, View view) {
this.mContext = ctx;
this.myView = view;
initViews();
initEvents();
initDatas();
}
}
2、实例化控件
public void initViews() {
ivHeadIcon = (ImageView) myView.findViewById(R.id.head_icon);
...
}
3、设置监听的3种常用方式
a.声明一个私有的监听对象
public void initEvents() {
ivHeadIcon.setOnClickListener(onClickListener);
...
}
private OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v == ivHeadIcon) {
} else if (v == tvUserNick) {
}
...
}
}
b.在设置监听这一步直接new 一个匿名内部类,此方法比较灵活一些,适合给少数控件添加监听
c.给整个view实现监听事件,implements OnClickListener,然后再重新OnClick方法
OnClick方法里面,可以通过判断控件的id,或者判断对象来执行具体的响应动作
3、初始化数据
就是给控件设置初始的状态,初始的内容
原文:http://my.oschina.net/carbenson/blog/506402