【问题标题】:codenameone soft back button not working代号一个软后退按钮不起作用
【发布时间】: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


【解决方案1】:

模拟器上的 Escape 模拟后退按钮,在显示表单之前它应该可以正常工作,但我猜有些东西正在用另一个后退按钮覆盖该代码?

如果这是一个旧的 GUI 构建器应用程序,那么它可能正在这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多