2

从我的黑莓应用程序中单击后退按钮时,我想回到主屏幕。我在谷歌和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(); 来到黑莓主屏幕。但它不工作。它再次出现在我的应用程序主屏幕上。

4

3 回答 3

5

覆盖 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());
}
于 2012-06-04T11:42:39.160 回答
3

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

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;
    }
于 2012-06-06T06:08:50.880 回答
1

试试这个 -

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;
    }
于 2012-06-04T11:42:19.927 回答