如何使用物理后退按钮返回浏览器的历史记录?

时间:2012-03-28 11:10:09

标签: java blackberry browser navigation

我正在创建一个应用程序,我在其中打开BrowserField,用户可以进一步导航到网页中的链接。问题是,当我按下物理后退按钮时,会显示上一个屏幕,而我想在BrowserField本身中显示上一页。怎么做?这甚至可能吗?

感谢。

2 个答案:

答案 0 :(得分:2)

您需要使用BrowserFieldHistory使用canGoBack()goBack()方法返回上一页。只需覆盖keyChar方法来控制ESCAPE键输入并按照自己的逻辑设置:

public boolean keyChar(char key, int status, int time) {
  if ( key == Characters.ESCAPE) {
    if(yourBrowserField.getHistory().canGoBack()){
      yourBrowserField.getHistory().goBack();
    }else{
      UiApplication.getUiApplication().popScreen(this);
      return true;
    }
   }
}

答案 1 :(得分:1)

可能

试试这段代码:

public class NewsBrowserScreen extends MainScreen 
{
int current_index,popup;
String url;
VerticalFieldManager vertical;
BrowserField browserField;
BrowserFieldConfig browserFieldConfig;
BrowserFieldHistory browserFieldHistory;

public NewsBrowserScreen(int current_index,int popup,String url) 
{
    this.current_index=current_index;
    this.popup=popup;
    this.url=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();
    }   
}
}

够;