您的位置:首页 > 移动开发 > Android开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: