【问题标题】:Back Button handling in blackberry黑莓中的后退按钮处理
【发布时间】:2012-06-08 09:51:23
【问题描述】:

我想在我的黑莓应用程序中单击后退按钮时回到主屏幕。我在谷歌和stackoverflow中搜索过这个,但我没有得到任何解决方案。任何人都可以为此提供帮助。

在我的开始屏幕中,我为后退按钮写了这样的内容。

protected boolean keyDown(int keycode, int time)
    {
        if (Keypad.key(keycode) ==  Keypad.KEY_ESCAPE)
        {
            close();
            return true;
        }

        else
        {
            return super.keyDown(keycode, time);
        } 
    }

在我的HomeScreen中我是这样写的。

protected boolean keyDown(int keycode, int time)
    {
        if (Keypad.key(keycode) ==  Keypad.KEY_ESCAPE)
        {
            UiApplication.getUiApplication().pushScreen(new StartingScreen());
            return true;
        }

        else
        {
            return super.keyDown(keycode, time);
        } 
    }

从我的应用程序 HomeScreen 我可以进入我的应用程序的起始屏幕。之后,当我从开始屏幕单击后退按钮时,我需要转到黑莓主屏幕,这意味着我需要退出应用程序并退出。我写了 close();来到黑莓主屏幕。但它不工作。它再次出现在我的应用程序主屏幕上。

【问题讨论】:

  • 主屏幕是什么意思???您的应用程序主屏幕或黑莓主屏幕??
  • 我需要进入黑莓主屏幕
  • 那么当你按下后退按钮时,只需关闭你的应用程序。
  • 我写了但它不工作。请检查我的编辑。现在。就像我写的一样。但它不工作。
  • @sandhya.M.使用 System.exit(0);用于在按下返回键时终止应用程序。 protected boolean keyDown(int keycode, int time) { if(keycode == 1179648){ System.exit(0); } return super.keyDown(keycode, time); }

标签: blackberry


【解决方案1】:

在 MainScreen 的子类中重写 keyDown 方法。

protected boolean keyDown(int keycode, int time) {  
    int key = Keypad.key(keycode);
        if(key==Characters.ESCAPE){
            // do something here
            return true;
        }       
        return super.keyDown(keycode, time);
    }

回到主屏幕

while(!(UiApplication.getUiApplication().getActiveScreen() instanceof HomeScreen)){
                UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
}

【讨论】:

  • 我需要进入黑莓主屏幕。如何操作?
  • 你能告诉我该在哪里写代码吗?我写在我的应用程序后退按钮的开始屏幕上。但它不起作用。它只会再次出现在我的应用程序主屏幕上。不适合黑莓主屏幕
  • @sandhya.M.让我澄清一下我的理解。当您从主屏幕按下后退按钮时,您想退出应用程序。而且,下次启动时它应该重新开始吗?这是你的要求吗?
  • 不。我想从启动屏幕而不是主屏幕退出应用程序。下次如果我打开它。它应该重新启动。
  • @sandhya.M.使用 System.exit(0);用于在按下返回键时终止应用程序。 protected boolean keyDown(int keycode, int time) { if(keycode == 1179648){ System.exit(0); } return super.keyDown(keycode, time); }
【解决方案2】:

我得到了解决方案...我写了这样的。

public boolean onClose() 
    {
        int choose=Dialog.ask(Dialog.D_YES_NO, "Are you sure Want to Exit?");
        if(choose==Dialog.YES)
        {
            System.exit(0);

        }
        return true;
    }

【讨论】:

    【解决方案3】:

    试试这个 -

    public class yourclass extends MainScreen{
          public yourclass(){
    
       }
       }
    public boolean onClose() {
           Application.getApplication().invokeLater(new Runnable() {
                public void run() {
    
                                 //close this screen and push your home screen  
    
                }
            });
            return true;
        }
    

    【讨论】:

    • 我需要进入黑莓主屏幕。如何做到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多