Android事件处理之二 基于回调的事件处理
2015-01-31 17:31
288 查看
Android还提供了一种基于回调的时间处理模型。代码上回调处理更简单
3.3.1 回调机制与监听机制
当用户在GUI组件上激发某个事件时,组件自己特定的方法将会负责处理该事件
为了实现回调机制类处理GUI组件发生的时间,Android为所有GUI组件都提供了一些时间处理回调方法。以View为例:
boolean onKeyDown(int keyCode, KeyEvent event)
boolean onKeyLongPress(int keyCode, KeyEvent event)
boolean onKeyShortcut(int keyCode, KeyEvent event)
boolean onKeyUp(int keyCode, KeyEvent event)
boolean onTouchEvent(MotionEvent event)
boolean onTrackballEvent(MotionEvent event):当用户在该组件上触发轨迹球屏事件时
示例代码:
public
class
MyButton
extends Button{
public
MyButton(Context context, AttributeSet set)
{
super(context, set);
}
@Override
public
boolean
onKeyDown(int
keyCode, KeyEvent event)
{
super.onKeyDown(keyCode, event);
Log.v("test for ce","the onKeyDown in MyButton");
// Toast.makeText(getApplicationContext(), "you have call the ", Toast.LENGTH_SHORT).show();
return
true;
}
}
3.3.2 基于回调的事件传播
几乎所有基于回调的时间处理方法都有一个boolean类型的返回值,标识是否能完全处理该事件
返回true,表明该方法已完全处理该事件,该事件不会传播出去
返回false,表明该处理方法并未完全处理,该事件会传播出去
某组件上所发出的事情不仅激发该组件上的回调方法,也会触发该组件所在Activity的回调方法——只要事件能传播出去
3.3.3 重写onTouchEvent方法响应触摸屏事件
基于监听的事件处理模型具有更大的优势:
基于监听的事件处理模型,分工更明确,具有更好的可维护性
Android的事件处理机制保证基于监听的事件监听器会优先被触发
3.3.1 回调机制与监听机制
当用户在GUI组件上激发某个事件时,组件自己特定的方法将会负责处理该事件
为了实现回调机制类处理GUI组件发生的时间,Android为所有GUI组件都提供了一些时间处理回调方法。以View为例:
boolean onKeyDown(int keyCode, KeyEvent event)
boolean onKeyLongPress(int keyCode, KeyEvent event)
boolean onKeyShortcut(int keyCode, KeyEvent event)
boolean onKeyUp(int keyCode, KeyEvent event)
boolean onTouchEvent(MotionEvent event)
boolean onTrackballEvent(MotionEvent event):当用户在该组件上触发轨迹球屏事件时
示例代码:
public
class
MyButton
extends Button{
public
MyButton(Context context, AttributeSet set)
{
super(context, set);
}
@Override
public
boolean
onKeyDown(int
keyCode, KeyEvent event)
{
super.onKeyDown(keyCode, event);
Log.v("test for ce","the onKeyDown in MyButton");
// Toast.makeText(getApplicationContext(), "you have call the ", Toast.LENGTH_SHORT).show();
return
true;
}
}
3.3.2 基于回调的事件传播
几乎所有基于回调的时间处理方法都有一个boolean类型的返回值,标识是否能完全处理该事件
返回true,表明该方法已完全处理该事件,该事件不会传播出去
返回false,表明该处理方法并未完全处理,该事件会传播出去
某组件上所发出的事情不仅激发该组件上的回调方法,也会触发该组件所在Activity的回调方法——只要事件能传播出去
3.3.3 重写onTouchEvent方法响应触摸屏事件
基于监听的事件处理模型具有更大的优势:
基于监听的事件处理模型,分工更明确,具有更好的可维护性
Android的事件处理机制保证基于监听的事件监听器会优先被触发
相关文章推荐
- Android笔记二十四.Android基于回调的事件处理机制
- Android中基于回调的事件处理
- Android——事件处理模型一(基于回调机制的事件处理)(转)
- Android零基础入门第35节:Android中基于回调的事件处理
- Android事件处理方法总结-基于回调的事件处理
- Android 之事件处理(一)基于回调机制的事件处理
- Android零基础入门第35节:Android中基于回调的事件处理
- Android笔记二十四.Android基于回调的事件处理机制
- Android基于回调的事件处理
- Android 事件处理详解(二) —— 基于回调的事件处理
- Android的事件处理机制(一)------基于回调机制的事件处理
- Android疯狂讲义中,基于回调的事件处理,报错Binary XML file line #8: Error inflating class org.crazyit.event.MyButton
- Android零基础入门第35节:Android中基于回调的事件处理
- Android笔记二十四.Android基于回调的事件处理机制
- 【Android事件的处理】---基于回调的事件处理
- Android零基础入门第35节:Android中基于回调的事件处理
- Android基础入门教程——3.2 基于回调的事件处理机制
- 第二课:Android的事件处理(基于回调)
- Android事件处理模型一(基于回调机制的事件处理)
- android基于回调的事件处理机制