黑莓中的后退按钮处理

时间:2012-06-04 09:49:09

标签: blackberry

我想点击黑莓手机应用程序中的后退按钮进入主屏幕。我在google和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();来到黑莓主屏幕。但它不起作用。它再次进入我的应用程序主屏幕。

3 个答案:

答案 0 :(得分: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());
}

答案 1 :(得分: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;
    }

答案 2 :(得分: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;
    }