关于移动设备上的一些按键值及其对应的事件
2015-12-04 10:55
363 查看
按键及触屏的事件:
Java代码
1.package com.yarin.Android.Examples_04_01;
2.
3.import android.app.Activity;
4.import android.os.Bundle;
5.import android.view.KeyEvent;
6.import android.view.MotionEvent;
7.import android.view.View;
8.import android.widget.Button;
9.import android.widget.Toast;
10./**
11. *
12. * 控件事件通过设置其控件的监听器来监听并处理事件
13. * 按键按下事件:通过重写onKeyDown方法
14. * 按键弹起事件:通过重写onKeyUp方法
15. * 触笔点击事件:通过实现onTouchEvent方法
16. * 示例中使用了Toast控件:
17. * Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
18. * 显示提示信息
19. *
20. */
21.
22.public class Activity01 extends Activity
23.{
24.
25. public void onCreate(Bundle savedInstanceState)
26. {
27.
28. super.onCreate(savedInstanceState);
29.
30. setContentView(R.layout.main);
31. //获得Button对象
32. Button button_ok = (Button) findViewById(R.id.ok);
33. //设置Button控件监听器
34. button_ok.setOnClickListener(new Button.OnClickListener() {
35. public void onClick(View v)
36. {
37. //这里处理事件
38. DisplayToast("点击了OK按钮");
39. }
40. });
41.
42. }
43.
44. /* 按键按下所触发的事件 */
45. public boolean onKeyDown(int keyCode, KeyEvent event)
46. {
47. switch (keyCode)
48. {
49. case KeyEvent.KEYCODE_DPAD_CENTER:
50. DisplayToast("按下:中键");
51. break;
52. case KeyEvent.KEYCODE_DPAD_UP:
53. DisplayToast("按下:上方向键");
54. break;
55. case KeyEvent.KEYCODE_DPAD_DOWN:
56. DisplayToast("按下:下方向键");
57. break;
58. case KeyEvent.KEYCODE_DPAD_LEFT:
59. DisplayToast("按下:左方向键");
60. break;
61. case KeyEvent.KEYCODE_DPAD_RIGHT:
62. DisplayToast("按下:右方向键");
63. break;
64. }
65. return super.onKeyDown(keyCode, event);
66. }
67. /* 按键弹起所触发的事件 */
68. public boolean onKeyUp(int keyCode, KeyEvent event)
69. {
70. switch (keyCode)
71. {
72. case KeyEvent.KEYCODE_DPAD_CENTER:
73. DisplayToast("弹起:中键");
74. break;
75. case KeyEvent.KEYCODE_DPAD_UP:
76. DisplayToast("弹起:上方向键");
77. break;
78. case KeyEvent.KEYCODE_DPAD_DOWN:
79. DisplayToast("弹起:下方向键");
80. break;
81. case KeyEvent.KEYCODE_DPAD_LEFT:
82. DisplayToast("弹起:左方向键");
83. break;
84. case KeyEvent.KEYCODE_DPAD_RIGHT:
85. DisplayToast("弹起:右方向键");
86. break;
87. }
88.
89. return super.onKeyUp(keyCode, event);
90. }
91.
92. public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
93. {
94.
95. return super.onKeyMultiple(keyCode, repeatCount, event);
96. }
97.
98. /* 触笔事件 */
99. public boolean onTouchEvent(MotionEvent event)
100. {
101. int iAction = event.getAction();
102. if (iAction == MotionEvent.ACTION_CANCEL ||
103. iAction == MotionEvent.ACTION_DOWN ||
104. iAction == MotionEvent.ACTION_MOVE)
105. {
106. return false;
107. }
108. //得到触笔点击的位置
109. int x = (int) event.getX();
110. int y = (int) event.getY();
111.
112. DisplayToast("触笔点击坐标:("+Integer.toString(x)+","+Integer.toString(y)+")");
113.
114. return super.onTouchEvent(event);
115. }
116.
117. /* 显示Toast */
118. public void DisplayToast(String str)
119. {
120. Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
121. }
122.}
@Override
public void onBackPressed() {
// 这里处理逻辑代码,cwj提示大家注意该方法仅适用于2.0或更新版的sdk
return;
}
Java代码
1.package com.yarin.Android.Examples_04_01;
2.
3.import android.app.Activity;
4.import android.os.Bundle;
5.import android.view.KeyEvent;
6.import android.view.MotionEvent;
7.import android.view.View;
8.import android.widget.Button;
9.import android.widget.Toast;
10./**
11. *
12. * 控件事件通过设置其控件的监听器来监听并处理事件
13. * 按键按下事件:通过重写onKeyDown方法
14. * 按键弹起事件:通过重写onKeyUp方法
15. * 触笔点击事件:通过实现onTouchEvent方法
16. * 示例中使用了Toast控件:
17. * Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
18. * 显示提示信息
19. *
20. */
21.
22.public class Activity01 extends Activity
23.{
24.
25. public void onCreate(Bundle savedInstanceState)
26. {
27.
28. super.onCreate(savedInstanceState);
29.
30. setContentView(R.layout.main);
31. //获得Button对象
32. Button button_ok = (Button) findViewById(R.id.ok);
33. //设置Button控件监听器
34. button_ok.setOnClickListener(new Button.OnClickListener() {
35. public void onClick(View v)
36. {
37. //这里处理事件
38. DisplayToast("点击了OK按钮");
39. }
40. });
41.
42. }
43.
44. /* 按键按下所触发的事件 */
45. public boolean onKeyDown(int keyCode, KeyEvent event)
46. {
47. switch (keyCode)
48. {
49. case KeyEvent.KEYCODE_DPAD_CENTER:
50. DisplayToast("按下:中键");
51. break;
52. case KeyEvent.KEYCODE_DPAD_UP:
53. DisplayToast("按下:上方向键");
54. break;
55. case KeyEvent.KEYCODE_DPAD_DOWN:
56. DisplayToast("按下:下方向键");
57. break;
58. case KeyEvent.KEYCODE_DPAD_LEFT:
59. DisplayToast("按下:左方向键");
60. break;
61. case KeyEvent.KEYCODE_DPAD_RIGHT:
62. DisplayToast("按下:右方向键");
63. break;
64. }
65. return super.onKeyDown(keyCode, event);
66. }
67. /* 按键弹起所触发的事件 */
68. public boolean onKeyUp(int keyCode, KeyEvent event)
69. {
70. switch (keyCode)
71. {
72. case KeyEvent.KEYCODE_DPAD_CENTER:
73. DisplayToast("弹起:中键");
74. break;
75. case KeyEvent.KEYCODE_DPAD_UP:
76. DisplayToast("弹起:上方向键");
77. break;
78. case KeyEvent.KEYCODE_DPAD_DOWN:
79. DisplayToast("弹起:下方向键");
80. break;
81. case KeyEvent.KEYCODE_DPAD_LEFT:
82. DisplayToast("弹起:左方向键");
83. break;
84. case KeyEvent.KEYCODE_DPAD_RIGHT:
85. DisplayToast("弹起:右方向键");
86. break;
87. }
88.
89. return super.onKeyUp(keyCode, event);
90. }
91.
92. public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
93. {
94.
95. return super.onKeyMultiple(keyCode, repeatCount, event);
96. }
97.
98. /* 触笔事件 */
99. public boolean onTouchEvent(MotionEvent event)
100. {
101. int iAction = event.getAction();
102. if (iAction == MotionEvent.ACTION_CANCEL ||
103. iAction == MotionEvent.ACTION_DOWN ||
104. iAction == MotionEvent.ACTION_MOVE)
105. {
106. return false;
107. }
108. //得到触笔点击的位置
109. int x = (int) event.getX();
110. int y = (int) event.getY();
111.
112. DisplayToast("触笔点击坐标:("+Integer.toString(x)+","+Integer.toString(y)+")");
113.
114. return super.onTouchEvent(event);
115. }
116.
117. /* 显示Toast */
118. public void DisplayToast(String str)
119. {
120. Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
121. }
122.}
@Override
public void onBackPressed() {
// 这里处理逻辑代码,cwj提示大家注意该方法仅适用于2.0或更新版的sdk
return;
}
相关文章推荐
- Web工程手动部署到Tomcat下的方法
- // 正则判断手机号码地址格式
- 关于scanf、sscanf和sscanf_s
- #if 和#ifdef的区别
- phpcms v9实现wap单页教程
- Haproxy、Keepalived双主高可用负载均衡
- 对Android中Tab的使用总结
- Day 6:在 Java 虚拟机上使用 Grails 进行快速 Web 开发
- Android地图开发中的地理编码与地理反编码
- sencha touch 创建app后,修改启动画面
- Android控件之AutoCompleteTextView、MultiAutoCompleteTextView探究
- 实现查询地址和路线导航的代码
- android应用登录模块访问mysql数据库小记
- Android Geocoder异常现象
- ListView 获取Item 高宽
- c# 退出
- 全球定位系统在移动上的应用
- 基于Android手机开发平台的移动数字图书馆服务系统研究
- Scala微服务架构
- js省市二级下拉联动