1
我有一个电话只有一个物理键,它被点击作为后退操作。但是关键事件不能在LWUIT 1.5中找到。这里是我的代码:物理键按下的事件不能被捕获LWUIT
import com.sun.lwuit.Command;
import com.sun.lwuit.Form;
import com.sun.lwuit.events.ActionEvent;
public class CustomForm extends Form {
public CustomForm() {
Command backCmd = new Command("BACK", 2) {
public void actionPerformed(ActionEvent evt) {
System.out
.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! back cmd evt: "
+ evt);
}
};
this.addCommand(backCmd, 0);
}
public void keyPressed(int aKeyCode) {
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@ key code = " + aKeyCode);
super.keyPressed(aKeyCode);
}
public void keyReleased(int keyCode) {
System.out
.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ key released code: "
+ keyCode);
super.keyReleased(keyCode);
}
}
但是,关键事件可以用LCDUI Form捕获。以下是LCDUI的代码:
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class Test extends MIDlet implements CommandListener {
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
Form form = new Form("Hello World");
StringItem str = new StringItem("HI", "BYE");
form.append(str);
Command bc = new Command("Back", Command.BACK, 1);
form.addCommand(bc);
form.setCommandListener(this);
Display.getDisplay(this).setCurrent(form);
}
public void commandAction(Command c, Displayable d) {
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~ Got command: "
+ c.getCommandType() + " " + c.getLabel());
if (c.getCommandType() == Command.BACK) {
// Application logic for Back button press
}
}
}
LWUIT可能会忽略某些关键事件吗?任何人都可以帮我吗?
我怎么能在我的应用程序 – 2012-09-18 09:41:50
处理默认回命令确保将其添加到每一个形式,是通过setBackCommand(yourCommand)相关 – 2012-09-24 09:53:48
我已经这样做,我将其添加在MyForm的类,使所有其他形式的继承从MyForm,然后我做一个后退行动方法抽象并在每个子窗体中实现它,然后使用反射我从父窗体应用当前窗体的行为,现在可行,但我不知道它是否会造成任何问题下一个 – 2012-09-24 10:01:48