一、什么是事件
在安卓中,事件会设计到的对象有三个:Activity ViewGroup View
与事件相关的三个方法:dispatchaTouchEvent(MotionEvent ev)
onInterceptTouchEvent(MotionEvent ev)
ontouchEvent(MotionEvent ev)
其中ViewGroup这三个方法都有;
而activity、view(没有子控件)只有dispatchaTouchEvent(MotionEvent ev)、
ontouchEvent(MotionEventev)这两个方法。
二、Android中有哪些事件
- Android控件中事件,有一些事件是所有的控件有(View类内部),还有的一些是各种控件所特有的
1.1) 对于的Activity、view 、VewGroup 都有与用户交互的事件,比如所有的控件都有 、OnClickListener 、OnLongClickListener 、OnTouchListener (补充)
1.2) 对于的一些的特定的控件有一些特定的事件监听:
①EditText(编辑框)的事件监听---OnKeyListener
②RadioGroup、RadioButton(单选按钮)的事件监听---OnCheckedChangeListener
③CheckBox(多选按钮)的事件监听---OnCheckedChangeListener
④Spinner(下拉列表)的事件监听---OnItemSelectedListener
⑤Menu(菜单)的事件处理---onMenuItemSelected
⑥Dialog(对话框)的事件监听---DialogInterface.OnClickListener()
SeekBar------OnSeekBarChangListener{onProgressChanged,onStartTrackingTouch, onStopTrackingTouch}
ViewPager------
ProgressBar------
后续补充
- 对于手机上的按键的监听
Android手机常用的三个键,home键,back键及menu键。
在应用程序里我们经常会对它们经常进行一定的处理,方便用户使用。首先我们要明确点击三个键时系统干了什么事,如果没有进行监听处理,
点击home键时,系统默认只执行应用程序的当前显示的Activity的onStop()方法后跳出界面。
而点击back键时,系统默认执行的是应用程序当前Activity的finish()方法后跳出界面。
而点击menu键时,系统默认不进行任何处理。
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch(keyCode){
case KeyEvent.KEYCODE_BACK:
break;
case KeyEvent.keyCode==KeyEvent.KEYCODE_MENU:
break;
case keyCode==KeyEvent.KEYCODE_HOME:
break;
}
}
*注意:现在手机的对按键设计是的不一样的,所以以上代码并不健壮,还需要处理
参考文章:
http://blog.sina.com.cn/s/blog_b37dcd970101c9fq.html
三、android中的事件传递机制
参考文章
http://blog.csdn.net/carson_ho/article/details/54136311