【发布时间】:2016-10-13 09:05:58
【问题描述】:
我只是尝试在我的应用中实现后退功能。我尝试了 [CodeNameOne Dynamically created Form, how to "Back":
中的示例Command back = new Command("Back") {
public void actionPerformed(ActionEvent ev) {
// notice that when showing a previous form it is best to use showBack() so the
// transition runs in reverse
showPreviousForm();
}
};
f.setBackCommand(back);
我添加了一些日志消息来查看按钮是否被按下。 按下软后退按钮后,在模拟器中什么也没有发生(软后退按钮在模拟器中完全起作用吗?)。
在我的智能手机上,按下软后退按钮后,应用程序将移至后台,并显示 Android 的主屏幕。在我的日志文件中,我可以看到从未调用过动作侦听器。我在上面列出的代码的基础上修改的代码如下(我添加了一些try-catch来查看是否有异常):
Command back = null;
try {
Log.p("addTask(): " + "Creating back command...");
back = new Command("Back") {
public void actionPerformed(ActionEvent ev) {
Log.p("addTask(): " + "Back button pressed!");
}
};
} catch (Exception e) {
Log.p("addTask(): " + e.toString());
}
try {
if (back != null) {
Log.p("addTask(): " + "Setting back command...");
newForm.setBackCommand(back);
Log.p("addTask(): " + "Back command set.");
} else {
Log.p("addTask(): " + "Back not set because back == null.");
}
} catch (Exception e) {
Log.p("addTask(): " + e.toString());
}
有什么帮助吗?
(顺便问一下:如何捕捉音量增大/减小事件?)
【问题讨论】:
-
刚刚查到原因:我在form.show()命令被调用之前在form中设置了back命令。在调用 form.show() 后设置 back 命令使其工作。
标签: codenameone back