android中的事件类型分为按键事件和屏幕触摸事件
事件是我们在于UI交互式发生的,我们点击一个按键时,可能就已经除非好几个事件,例如我们点击数字键“0”,他会涉及到按下事件,和一个弹起(松开)事件,在我们android中还可能涉及到触摸屏事件,所以在android系统中,事件是作为常用的功能之一;
在android下,事件的发生是在监听器下进行,android系统可以响应按键事件和触摸屏事件,事件说明如下:
onClick(View v) 一个普通的点击按钮事件
boolean onKeyMultiple(int keyCode,int repeatCount,KeyEvent event)用于在多个事件连续时发生,用于按键重复,必须重载实现
boolean onKeyDown(int keyCode,KeyEvent event) 用于在按键进行按下时发生
boolean onKeyUp(int keyCode,KeyEvent event) 用于在按键进行释放时发生
onTouchEvent(MotionEvent event)触摸屏事件,当在触摸屏上有动作时发生
boolean onKeyLongPress(int keyCode, KeyEvent event)当你长时间按时发生
本实例实现上述的描述:
实现的截图如下:
实现的代码如下:
public class Touch_KEY_Listener_Activity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_touch__key__listener_);
}
//当按键按下时发生的事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
switch(keyCode)
{
case KeyEvent.KEYCODE_0:
DisplayToast("你按下数字键0");
break;
case KeyEvent.KEYCODE_DPAD_CENTER:
DisplayToast("你按下中间键");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
DisplayToast("你按下下方向键");
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
DisplayToast("你按下左方向键");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
DisplayToast("你按下右方向键");
break;
case KeyEvent.KEYCODE_DPAD_UP:
DisplayToast("你按下上方向键");
break;
case KeyEvent.KEYCODE_ALT_LEFT:
DisplayToast("你按下组合键alt+←");
break;
}
return super.onKeyDown(keyCode, event);
}
//当按键被松开时响应的事件
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
switch(keyCode)
{
case KeyEvent.KEYCODE_0:
DisplayToast("松开数字键0");
break;
case KeyEvent.KEYCODE_DPAD_CENTER:
DisplayToast("松开中间键");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
DisplayToast("松开下方向键");
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
DisplayToast("松开左方向键");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
DisplayToast("松开右方向键");
break;
case KeyEvent.KEYCODE_DPAD_UP:
DisplayToast("松开上方向键");
break;
case KeyEvent.KEYCODE_ALT_LEFT:
DisplayToast("松开组合键alt+←");
break;
}
return super.onKeyUp(keyCode, event);
}
// 触摸屏事件,当用手或者用笔在触摸屏上做动作是发生
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
int iAction=event.getAction();
if(iAction==MotionEvent.ACTION_MOVE)
{
DisplayToast("你在触摸屏上进行了滑动");
}
else
{
return false;
}
return super.onTouchEvent(event);
}
//连续点击按键时发生的事件
@Override
public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {
// TODO Auto-generated method stub
return super.onKeyMultiple(keyCode, repeatCount, event);
}
public void DisplayToast(String str)
{
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_touch__key__listener_, menu);
return true;
}
}
分享到:
相关推荐
时钟事件处理,显示签到时间,初学者实用。 android:id="@+id/analogClock01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/> ...
# mv /opt/android-sdk/platforms/android-25/android-7.1.1/* /opt/android-sdk/platforms/android-25/ # rm -rf /opt/android-sdk/platforms/android-25/android-7.1.1 官网下载地址:...
Android移动开发-ansynctask事件处理
编译时遇到以下报错:app:lintVitalRelease[Fatal Error] :43:105: 与元素类型 "item" 相关联的 "name" 属性值不能包含 '...请将本文件替换SDK目录下的/platform-tools/api/annotations.zip文件,建议替换前备份原文件
使用: export ANDROID_HOME="/opt/android-...# mv /opt/android-sdk/platforms/android-8.0.0 /opt/android-sdk/platforms/android-26 官网下载地址:https://dl.google.com/android/repository/platform-26_r01.zip
在Android应用程序中,有一类特殊的消息,是专门负责与用户进行交互的,它们就是触摸屏和键盘等输入事件。触摸屏和键盘事件是统一由系统输入管理器InputManager进行分发的。也就是说,InputManager负责从硬件接收...
Android面面观——Android事件处理下(按键、触摸屏
android:id="@+id/toggleButton01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_close"/> android:id="@+id/imageButton01" android:layout_...
博文源码《Android基于Socket无线遥控(2)--无线控制篇》 http://blog.csdn.net/zzp16/article/details/7939852 为Android系统添加模拟按键对外接口
Android开发-登录界面Demo-AndroidStudio 对应博文:http://blog.csdn.net/iwanghang/article/details/78135304
android-ndk-r12b\toolchains下的编译平台 android-ndk-r12b\toolchains\mips64el-linux-android-4.9 android-ndk-r12b\toolchains\mipsel-linux-android-4.9
自动安装更新,可以设置面流量更新,但不要设置“静默安装更新包”,否则新版本发布后会自动更新成应用中心的最新版本,而最新版本的后三位可能不是你想要的分支,这时候就会导致弹出提示架构不符等。
android-support-v4-v7-v13-v14-v17(官方最新完整版),官方最新版的,压缩包内包含android-support-v4、android-support-v7-appcompat,android-support-v7-cardview,android-support-v7-gridlayout,android-support-...
Android开发--仿微信语音对讲录音,按住讲话进行录音,向上滑动可以进行取消录音。
android 后台监听按键事件方法及demoandroid 后台监听按键事件方法及demo
Android开发-SQLiteDemo增删改查-AndroidStudio 资源对应博客: http://blog.csdn.net/iwanghang/article/details/52192046
android按钮添加按键音操作,比如做计算器按钮点击是有指定按键音。还有做拨打电话拨号版是也可以给按钮添加按键音。
最新android studio 2015/10/12日更新 2015/10/12 android-studio-bundle-141.2288178-windows
本人亲测代码,作为Android中键盘事件处理的案例,如果大家喜欢我的例子,可以去我的博客浏览更多文章,供大家学习所用!
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...