在BlackBerry 手机上并没有左右软件,要将菜单键映射成左软键,将退出键映射为右软键。获取菜单键点击事件和退出键单点事件,在这两个事件的响应代码中执行左软键的代码或者是右软键的代码。在BlackBerry 手机上,菜单键事件和退出键事件需要通过KeyListener 来实现。可以为一个应用添加一个KeyListener 作为侦听器,当有按键被点击时,KeyListener 侦听器的keyDown 方法会被执行,获取当前被点击的按键的键值,通过键值的比较判断是哪个键被按下,如果是菜单键或者是退出键被按下,则执行左软键或者是右软键的响应逻辑。
package cn.searb.keymenu;
import net.rim.device.api.ui.Keypad;
public class MyKeyListener implements
net.rim.device.api.system.KeyListener {
public boolean keyChar(char arg0, int arg1, int arg2) {
return false;
}
public boolean keyDown(int arg0, int arg1) {
if (Keypad.key(arg0) == Keypad.KEY_MENU) {
// 执行菜单响应代码,即左软键响应代码
return true;
} else if (Keypad.key(arg0) == Keypad.KEY_ESCAPE) {
// 执行退出键响应代码,即右软键响应代码
return true;
}
return false;
}
public boolean keyRepeat(int arg0, int arg1) {
return false;
}
public boolean keyStatus(int arg0, int arg1) {
return false;
}
public boolean keyUp(int arg0, int arg1) {
return false;
}
}
在blackBerry 手机上还有一些其它的按键,如静音键,音量键等,可以通过keyPressed 方法对这些按键进行处理。
protected void keyPressed(int keyCode)
{
if (keyCode==-150)
{
System.out.println("volume up");
}
else if (keyCode==-151)
{
System.out.println("volume down");
}
}