黑莓浏览器后退点击

时间:2010-10-25 13:24:29

标签: java blackberry browser blackberry-simulator

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

BrowserSession browserSession;
browserSession = Browser.getDefaultSession();
try{
   browserSession.displayPage(mapLocation);
}catch(Exception e){
   e.printStackTrace();
}
从用户回答中复制

编辑

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

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

4 个答案:

答案 0 :(得分:2)

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

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

我希望它会有所帮助。

答案 1 :(得分:1)

这是后面的解决方案 当你点击后退(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();
        }   
    }
}

答案 2 :(得分:0)

代码如下

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);
    } 
}

答案 3 :(得分:0)

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

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

编辑:我认为这不是关于国家的。虽然不应该有太大的不同,我希望你能得到这个想法:)