Input Events
来源:互联网 发布:电钢琴选购知乎 编辑:程序博客网 时间:2024/06/03 19:16
Android 系统提供了很多中方法和用户交互.最好的方式是捕捉和用户交互view的事件。view 类提供这种方法.
Event Listeners:
event listener 是一个可以和view class 交互的方法。用户在和UI组件交互是会触发这个UI组件注册的event listner.主要分为以下几个callback函数.
onClick():View.OnClickListener 提供的方法。当用户触摸组件或者用导航键或者轨迹球将焦点放到这个组件上,并输入enter按键或者按下轨迹球,这个函数就会被调到.没有返回值.
onLongClick():View.OnClickListener 提供的方法,当用户按住UI 组件超过1s时,就会触发这个函数.返回一个boolean 类型,true的话,表示消耗了这个event,不在在往下传递了,fasle的话,表示要继续传递这个event.
onFocusChange():View.OnFocusChangeListener 提供的方法.当UI 组件获得或者失去焦点时。返回一个boolean 类型,true的话,表示消耗了这个event,不在在往下传递了,fasle的话,表示要继续传递这个event.
onKey(): View.OnKeyListener提供的方法.组件获得焦点,然后按下或者释放设备上的硬按键时.返回一个boolean 类型,true的话,表示消耗了这个event,不在在往下传递了,fasle的话,表示要继续传递这个event.
onTouch():View.OnTouchListener提供的方法.按下,释放,或者任何的手势。返回一个boolean 类型,true的话,表示消耗了这个event,不在在往下传递了,fasle的话,表示要继续传递这个event.
onCreateContextMenu(): View.OnCreateContextMenuListener提供的方法.当绑定Context且长按时.
要使用这些event listner 一般可以直接implement 这些interface或者定义匿名class。下面是on-click的实例.
// Create an anonymous implementation of OnClickListener
private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
}
};
protected void onCreate(Bundle savedValues) {
...
// Capture our button from layout
Button button = (Button)findViewById(R.id.corky);
// Register the onClick listener with the implementation above
button.setOnClickListener(mCorkyListener);
...
}
先new 一个匿名class,然后调用setOnClickListener 来设定event listner,这样当用户按button时就会触发mCorkyListener 中的onClick函数.
public class ExampleActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedValues) {
...
Button button = (Button)findViewById(R.id.corky);
button.setOnClickListener(this);
}
// Implement the OnClickListener callback
public void onClick(View v) {
// do something when the button is clicked
}
...
}
也可以implement OnClickListener 然后调用setOnClickListener(this)的方式进行,效果和前一种的匿名clas实现是一样的.
Event Handlers:你可以定义一些默认的event handler。
onkeyDown(int,keyEvent):当一个新的key event产生时,被调用.
onKeyUp(int,keyEvent):key up 产生时
onTrackballEvent(MotionEvent):轨迹球移动事件产生时
onTouchEvent(MotionEvent):触摸屏幕时。
onFocusChange(boolean,int,Rect):view gains 或者失去焦点时.
下面这几个不是view class,但是可以直接影响你的handle event
Activity.dispatchTouchEvent(MotionEvent):在touch event被发送给window之前允许你的activity 和所有的touch event交互
ViewGroup.onInterceptTouchEvent(MotionEvent):允许event被发送给自view的同时允许viewgroup 查看eventViewParent.requestDisallowInterceptTouchEvent(boolean):不要和InterceptTouchEvent 交互.
Event Listeners:
event listener 是一个可以和view class 交互的方法。用户在和UI组件交互是会触发这个UI组件注册的event listner.主要分为以下几个callback函数.
onClick():View.OnClickListener 提供的方法。当用户触摸组件或者用导航键或者轨迹球将焦点放到这个组件上,并输入enter按键或者按下轨迹球,这个函数就会被调到.没有返回值.
onLongClick():View.OnClickListener 提供的方法,当用户按住UI 组件超过1s时,就会触发这个函数.返回一个boolean 类型,true的话,表示消耗了这个event,不在在往下传递了,fasle的话,表示要继续传递这个event.
onFocusChange():View.OnFocusChangeListener 提供的方法.当UI 组件获得或者失去焦点时。返回一个boolean 类型,true的话,表示消耗了这个event,不在在往下传递了,fasle的话,表示要继续传递这个event.
onKey(): View.OnKeyListener提供的方法.组件获得焦点,然后按下或者释放设备上的硬按键时.返回一个boolean 类型,true的话,表示消耗了这个event,不在在往下传递了,fasle的话,表示要继续传递这个event.
onTouch():View.OnTouchListener提供的方法.按下,释放,或者任何的手势。返回一个boolean 类型,true的话,表示消耗了这个event,不在在往下传递了,fasle的话,表示要继续传递这个event.
onCreateContextMenu(): View.OnCreateContextMenuListener提供的方法.当绑定Context且长按时.
要使用这些event listner 一般可以直接implement 这些interface或者定义匿名class。下面是on-click的实例.
// Create an anonymous implementation of OnClickListener
private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
}
};
protected void onCreate(Bundle savedValues) {
...
// Capture our button from layout
Button button = (Button)findViewById(R.id.corky);
// Register the onClick listener with the implementation above
button.setOnClickListener(mCorkyListener);
...
}
先new 一个匿名class,然后调用setOnClickListener 来设定event listner,这样当用户按button时就会触发mCorkyListener 中的onClick函数.
public class ExampleActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedValues) {
...
Button button = (Button)findViewById(R.id.corky);
button.setOnClickListener(this);
}
// Implement the OnClickListener callback
public void onClick(View v) {
// do something when the button is clicked
}
...
}
也可以implement OnClickListener 然后调用setOnClickListener(this)的方式进行,效果和前一种的匿名clas实现是一样的.
Event Handlers:你可以定义一些默认的event handler。
onkeyDown(int,keyEvent):当一个新的key event产生时,被调用.
onKeyUp(int,keyEvent):key up 产生时
onTrackballEvent(MotionEvent):轨迹球移动事件产生时
onTouchEvent(MotionEvent):触摸屏幕时。
onFocusChange(boolean,int,Rect):view gains 或者失去焦点时.
下面这几个不是view class,但是可以直接影响你的handle event
Activity.dispatchTouchEvent(MotionEvent):在touch event被发送给window之前允许你的activity 和所有的touch event交互
ViewGroup.onInterceptTouchEvent(MotionEvent):允许event被发送给自view的同时允许viewgroup 查看eventViewParent.requestDisallowInterceptTouchEvent(boolean):不要和InterceptTouchEvent 交互.
0 0
- Input Events
- android -Input Events
- Input Events(输入事件)
- Input Events(输入事件)
- Android API Guides---Input Events
- Android 用户界面---输入事件(Input Events)
- Android 用户界面---输入事件(Input Events)
- How input events are dispatched in Android?
- Android 用户界面---输入事件(Input Events)
- EVENTS
- Events
- Dev Guide/Framework Topics/User Interface/Input Events
- Android 开发指南 翻译3:User Interface: Input Events
- Understanding Android Input Touch Events System Framework (dispatchTouchEvent, onInterceptTouchEvent
- 关于Oozie的input-events和done-flag
- Oozie的input-events和done-flag使用
- Angular2的input和output(原先的properties和events)
- Native Client - Application - View Change, Focus, and Input Events
- Linux C 内存泄漏检测工具
- Java并发编程:线程池的使用
- 数组中重复的数字
- hunnuoj10163—合并果子
- 黄阶低级 - 《 Java 核心》- 3.1 第一个java程序 - 修改0次
- Input Events
- Linux下逻辑地址-线性地址-物理地址图解
- 剑指offer(中位数-LeetCode4)
- JNI开发极简教程
- BZOJ4676: Xor-Mul棋盘
- webview部分内容偶尔加载不出来,html5在webview渲染问题
- 关于PADS LAYOUT 画元器件封装
- 写的第一篇博客
- 创建不同分辨率下的dimens工具类