日期:2014-05-20  浏览次数:20785 次

[急问]关于Form获取焦点和Canvas的键盘监听的问题
[急问]关于Form获取焦点和Canvas的键盘监听的问题

1、Form
    有一个Form,里面有若干个CustomItem。
    现在需要如下效果:当焦点移动到某个CustomItem上时,能知道是哪个CustomItem被选中了,从而可以控制该CustomItem里的线程开始运行。
    看了很久的API   Docs,没有发现Form里有类似于List中的getSelected()方法。
    也就是说,当焦点移动到一个CustomItem上并且没有按任何键时,这个Item不知道自己已经被盯上了,同时我也没办法判断现在是哪个Item被选中。
    到底应该如何获取哪个Item现在被焦点(选中)呢?

2、Canvas
    Canvas里有捕获按键的方法:KeyPressd()等。
    然而,在Nokia的手机上,除了数字键盘和上下左右中5个键外,还有左上、左下、右上、右下4个键。这4个键的值都不明。其中,左下和右下分别是拨打电话和挂机键。而左上和右上两个键始终不知道是什么值。而且,当给这个Canvas加命令时,这两个键都是弹出命令菜单(不论命令是Exit还是OK)。
    现在,需要给Canvas加上类似Form时右上键的功能。即当按右上键时,直接执行Exit命令,而不是弹出命令菜单,再到菜单里去选择Exit。
    这个怎么实现?

------解决方案--------------------
靠,还没写完

if (keyCode == -7) {
MidletName.notifyDestroyed();
}
这个是直接退出 !

------解决方案--------------------
另外,对于 CustomItem
protected void traverseOut()
Called by the system when traversal has occurred out of the item.

这个是焦点移出时的事件回调方法,你可以在这里停掉你的线程