【问题标题】:Blackberry browser back click黑莓浏览器返回点击
【发布时间】:2011-04-30 05:17:23
【问题描述】:

我试图在加载浏览器后返回上一页,但需要单击三下才能返回。我尝试覆盖后退按钮单击,但仍需要单击三下。我使用以下代码加载浏览器:

BrowserSession browserSession;
browserSession = Browser.getDefaultSession();
try{
   browserSession.displayPage(mapLocation);
}catch(Exception e){
   e.printStackTrace();
}

EDIT从用户的回答中复制:

我想转到上一个屏幕而不是浏览器中的上一页。返回按钮的代码:

protected boolean keyDown(int keycode, int status) {
  if(Keypad.key(keycode) == Keypad.KEY_ESCAPE) {
      _theApp.popScreen(this);
      return true;
  }
  return false;
}

【问题讨论】:

  • keyDown 方法属于哪个类?您是否尝试过在此处放置调试打印输出或断点,以查看它是否被执行?
  • 如果您还在,请检查您的问题,并通过勾选分数下方的空 V 图标将正确答案标记为已接受。谢谢。

标签: java blackberry browser blackberry-simulator


【解决方案1】:

要返回上一页,您可以尝试以下操作:

UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    这是返回的解决方案 当您单击后退(ESC)时,它将为您提供帮助 注:os5.0以后可用

    import net.rim.device.api.browser.field2.BrowserField;
    import net.rim.device.api.browser.field2.BrowserFieldConfig;
    import net.rim.device.api.browser.field2.BrowserFieldHistory;
    import net.rim.device.api.ui.container.MainScreen;
    import net.rim.device.api.ui.container.VerticalFieldManager;
    
    public class NewsBrowserScreen extends MainScreen 
    {
    
        String url="http://stackoverflow.com";
        VerticalFieldManager vertical;
        BrowserField browserField;
        BrowserFieldConfig browserFieldConfig;
        BrowserFieldHistory browserFieldHistory;
    //  BrowserSession browserSession;
    
        public NewsBrowserScreen(int current_index,int popup,String url) 
        {
            createGUI();
        }
        private void createGUI()    
        {       
            vertical=new VerticalFieldManager(VERTICAL_SCROLL|VERTICAL_SCROLLBAR|HORIZONTAL_SCROLL|HORIZONTAL_SCROLLBAR);
            browserFieldConfig=new BrowserFieldConfig();
            browserFieldConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE, BrowserFieldConfig.NAVIGATION_MODE_POINTER);     
            browserField=new BrowserField(browserFieldConfig);
            browserFieldHistory=browserField.getHistory();
            vertical.add(browserField);
            add(vertical);
            browserField.requestContent(url);
        }
        public boolean onClose() 
        {
            if(browserFieldHistory.canGoBack())
            {
                browserFieldHistory.goBack();           
                return true;
            }
            else
            {
                browserFieldHistory.clearHistory();
                return super.onClose();
            }   
        }
    }
    

    【讨论】:

      【解决方案3】:

      代码如下

      protected boolean keyDown(int keycode, int time)
      {
          ////keycode for back button
          if(keycode == 1769472)
          {
              UiApplication.getUiApplication.popscreen();
              return true;
          }
          else
          {
              return super.keyDown(keycode, time);
          } 
      }
      

      【讨论】:

        【解决方案4】:

        每次你做某事时,尝试更新 currentLayoutState 和 previousLayoutState(将这些变量添加到你的应用程序)然后覆盖 onBackPressed() 如果在 android 或 onKeyPress() 如果不是,并尝试转换到 previousState 如果它与当前状态不同。

        我猜你在某个地方跟踪状态,对吧?

        编辑:我认为这与状态无关。不过应该没什么区别,我希望你明白:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-14
          • 1970-01-01
          相关资源
          最近更新 更多