Android中上下左右键的按下和弹起响应操作
2012-01-02 15:09
190 查看
最新版本:Android中上下左右键的按下和弹起响应操作
我们已经练习了不少view了,在button介绍一文中,我们介绍了button事件的响应,然后在介绍其他view控件的时候,也介绍了不少响应这些控件的响应事件,看得出响应方法都是系统的一些回调函数在起作用,今天,我们在学习下Android虚拟键盘上下左右键按下和弹起的响应事件,由于代码简单,我就不再累赘的说明和交待了,看代码即可知用法。
动作一
创建EventsHandlerTest项目工程,这是我完成之后的目录:
动作二
在布局文件中,添加一个ListView控件,这个TestView主要是来显示和交待按键情况的,完整代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<TextView
android:id="@+id/display"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" />
</LinearLayout>
动作三
修改主要的代码,理解见注解:
package org.ourunix.android.eventshandle;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.TextView;
public class EventsHandleActivity extends Activity {
private TextView mTextView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextView = (TextView) findViewById(R.id.display);
}
// 按键按下,所触发的事件
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER:
display("中键报道,被按下");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
display("下键报道,被按下");
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
display("左键报道,被按下");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
display("右键报道,被按下");
break;
case KeyEvent.KEYCODE_DPAD_UP:
display("上键报道,被按下");
break;
}
return super.onKeyDown(keyCode, event);
}
// 按键弹起,所触发的事件
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER:
display("中键报道,被弹起");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
display("下键报道,被弹起");
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
display("左键报道,被弹起");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
display("右键报道,被弹起");
break;
case KeyEvent.KEYCODE_DPAD_UP:
display("上键报道,被弹起");
break;
}
return super.onKeyUp(keyCode, event);
}
// 用来显示文本框内容
public void display(String str) {
mTextView.setText(str);
}
}
动作四
运行EventsHandlerTest,效果如下:
运行程序,未按键
按上键
离开上键,其他类似
源码:EventsHandlerTest
我们已经练习了不少view了,在button介绍一文中,我们介绍了button事件的响应,然后在介绍其他view控件的时候,也介绍了不少响应这些控件的响应事件,看得出响应方法都是系统的一些回调函数在起作用,今天,我们在学习下Android虚拟键盘上下左右键按下和弹起的响应事件,由于代码简单,我就不再累赘的说明和交待了,看代码即可知用法。
动作一
创建EventsHandlerTest项目工程,这是我完成之后的目录:
动作二
在布局文件中,添加一个ListView控件,这个TestView主要是来显示和交待按键情况的,完整代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<TextView
android:id="@+id/display"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" />
</LinearLayout>
动作三
修改主要的代码,理解见注解:
package org.ourunix.android.eventshandle;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.TextView;
public class EventsHandleActivity extends Activity {
private TextView mTextView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextView = (TextView) findViewById(R.id.display);
}
// 按键按下,所触发的事件
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER:
display("中键报道,被按下");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
display("下键报道,被按下");
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
display("左键报道,被按下");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
display("右键报道,被按下");
break;
case KeyEvent.KEYCODE_DPAD_UP:
display("上键报道,被按下");
break;
}
return super.onKeyDown(keyCode, event);
}
// 按键弹起,所触发的事件
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER:
display("中键报道,被弹起");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
display("下键报道,被弹起");
break;
case KeyEvent.KEYCODE_DPAD_LEFT:
display("左键报道,被弹起");
break;
case KeyEvent.KEYCODE_DPAD_RIGHT:
display("右键报道,被弹起");
break;
case KeyEvent.KEYCODE_DPAD_UP:
display("上键报道,被弹起");
break;
}
return super.onKeyUp(keyCode, event);
}
// 用来显示文本框内容
public void display(String str) {
mTextView.setText(str);
}
}
动作四
运行EventsHandlerTest,效果如下:
运行程序,未按键
按上键
离开上键,其他类似
源码:EventsHandlerTest
相关文章推荐
- Android虚拟键盘上下左右键按下和弹起的响应事件
- Android键盘操作响应
- Android (界面编程#6-键盘操作响应)
- cocos2d-x-3.9,js对ccs的Listview的item的Button如果有setEnabled 操作,在android手机的微信里面打开会出现上下滑动变卡
- 一个简单的通过上下左右键移动div的案例--可用于游戏的用户操作界面
- GetAsyncKeyState 功能的使用 判断上下左右键是否被按下或弹起
- Android 上下左右键更换焦点
- android 模拟器出现DPAD问题,模拟器没有出现键盘,上下左右键也用不了
- 针对表格操作,包括复制表格行,添加表格行,键盘上下左右键进行表格上每个td的上下左右切换;支持火狐 谷歌 ie等浏览器
- Android操作响应时间测试方法
- android 监听上下左右键的功能实现
- Android 全局弹窗及点击响应操作
- Android菜单操作之创建并响应菜单
- android webkit JavaScript 不能处理onkeydown的上下左右键,引发的话题
- Android界面不单击响应操作 Window already focused
- Android开发之对上下两个图层的操作
- 关于android抓包替换响应内容操作
- Android开发之对上下两个图层的操作
- Android开发之对上下两个图层的操作
- jquery 响应不同浏览器 鼠标滚轮上下滚动事件 相对的操作