一些公用类中将单击事件转移到别的类中的方法

类A:公用类,其中包含一些控件的单击事件,因为该Fragment可能被公用,不希望在这里进行单击事件的处理

类B:主类,一般为主Activity对应的类



方法:

1、在类A中(如ClassPopupWindow)声明ClassPopupWindowListener mListener=null;

2、添加对应控件的单击相应监听,如 mGridView.setOnItemClickListener(mOnItemClickListener);

3、然后在单击处理事件中重新定义一个OnItemClick方法

private OnItemClickListener mOnItemClickListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long id) {

//该单击事件中可以进行一些公有的事件处理,如调用gridview的dismiss()方法
if(mListener!=null){
mListener.OnItemClick(position);//调用接口中的抽象方法,该方法要在实现类中重写,if判断必须加,否则会报异常
}
}
};


4、创建接口

public interface ClassPopupWindowListener{
void OnItemClick(int position);
}

5、 新建方法setListener(),该步骤非常重要,否则会找不到在类B中重写的OnItemClick()方法

public void setListener(ClassPopupWindowListener listener) {
mListener = listener;
}

6、类B implements ClassPopupWindowListener接口,在类B中声明类A对象private A a ,在初始化中a=new A();然后调用a.setListener(),相当于绑定

如private ClassPopupWindow mClassPopupWindow;

在初始化中

mClassPopupWindow = new ClassPopupWindow(this, mClassList);
mClassPopupWindow.setListener(this);

7、在类B中重写OnItemClick()方法,在这里进行相关处理



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值