android setOnClickListener 回调函数理解
2015-02-07 12:10
429 查看
1.模拟java View类:
package com.test;
/**
* Created by dandan on 15-2-7.
*/
public class View {
/**设置默认ID**/
public static final int NO_ID = -1;
/**设置每个控件的ID用于被子类覆盖**/
public int mID = NO_ID;
/**保存点击回调函数**/
public OnClicklistener mOnClicklistener;
public interface OnClicklistener {
void onClick(View view);
};
void setOnClicklistener(OnClicklistener onClicklistener) {
this.mOnClicklistener = onClicklistener;
};
public int getId(){
return mID;
};
}<span style="color:#ff0000;">
</span>
2.模拟android控件继承View
package com.test;
/**
* Created by dandan on 15-2-7.
*/
public class AnimationButton extends View{
/**
* 按钮子类中模拟用户点击的方法
*
* **/
public void moniClick(){
this.mID = 20;
OnClicklistener clicklistener = this.mOnClicklistener;
clicklistener.onClick(this);
}
}
3.模拟客户端使用AnimationButton控件
package com.test;
/**
* Created by dandan on 15-2-7.
*/
public class MainActivity {
public static void main(String[] args) {
AnimationButton animationButton = new AnimationButton();
animationButton.setOnClicklistener(new View.OnClicklistener() {
@Override
public void onClick(View view) {
System.out.print(view.getId());
}
});
package com.test;
/**
* Created by dandan on 15-2-7.
*/
public class View {
/**设置默认ID**/
public static final int NO_ID = -1;
/**设置每个控件的ID用于被子类覆盖**/
public int mID = NO_ID;
/**保存点击回调函数**/
public OnClicklistener mOnClicklistener;
public interface OnClicklistener {
void onClick(View view);
};
void setOnClicklistener(OnClicklistener onClicklistener) {
this.mOnClicklistener = onClicklistener;
};
public int getId(){
return mID;
};
}<span style="color:#ff0000;">
</span>
2.模拟android控件继承View
package com.test;
/**
* Created by dandan on 15-2-7.
*/
public class AnimationButton extends View{
/**
* 按钮子类中模拟用户点击的方法
*
* **/
public void moniClick(){
this.mID = 20;
OnClicklistener clicklistener = this.mOnClicklistener;
clicklistener.onClick(this);
}
}
3.模拟客户端使用AnimationButton控件
package com.test;
/**
* Created by dandan on 15-2-7.
*/
public class MainActivity {
public static void main(String[] args) {
AnimationButton animationButton = new AnimationButton();
animationButton.setOnClicklistener(new View.OnClicklistener() {
@Override
public void onClick(View view) {
System.out.print(view.getId());
}
});
<span style="white-space:pre"> </span>//模拟用户点击按钮 animationButton.moniClick(); } }
相关文章推荐
- 回调深入理解 同步回调 以android中View.OnClickListener为列
- 结合Dialog的onClick()事件理解Android中的回调函数三部曲
- Android中使用AlertDialog,使用函数setButton()出现的关于“new OnClickListener"错误
- Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决
- android setclickable()写在setonclickListener()前面会失效!
- Android按钮调用setOnClickListener监听方法报错的原因
- Android布局中的setOnClickListener没有作用
- Android-使用ListView时点击listview中的控件setOnItemClickListener()方法不执行(回调)
- 关于android创建对话框报错The method setPositiveButton(int, DialogInterface.OnClickListener) in the type Alert
- 我的android学习脚步----------- Button 和监听器setonclicklistener
- android:onClick vs setOnClickListener
- 从零开始学android开发-View的setOnClickListener的添加方法
- Android开发中CheckBox的setOnClickListener和setOnCheckedChangeListener的不同之处在哪?
- <Android>setOnClickListener使用无效,报错null pointer
- android的MainActivity中setOnClickListener(this)中的this指代
- 关于Android setOnclicklistener抛出空指针的问题
- android控件EditText的setOnEditorActionListener方法理解
- Android DEV : setOnClickListener() vs. android:onClick
- 回调机制的实现,即细看setOnClickListener怎么运行
- Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决