Java 如何返回浏览器';“物理后退”按钮的历史记录?

Java 如何返回浏览器';“物理后退”按钮的历史记录?,java,blackberry,browser,navigation,Java,Blackberry,Browser,Navigation,我正在制作一个应用程序,在其中我打开一个BrowserField,用户可以进一步导航到网页中的链接。问题是,当我按下physical back(物理后退)按钮时,会显示上一个屏幕,而我想在浏览器字段中显示上一页。怎么做?这可能吗 谢谢。您需要使用canGoBack()和goBack()方法返回上一页。只需越过keyChar方法即可控制ESCAPE键输入,并将您自己的逻辑如下所示: public boolean keyChar(char key, int status, int time) {

我正在制作一个应用程序,在其中我打开一个
BrowserField
,用户可以进一步导航到网页中的链接。问题是,当我按下physical back(物理后退)按钮时,会显示上一个屏幕,而我想在
浏览器字段
中显示上一页。怎么做?这可能吗

谢谢。

您需要使用
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;
    }
   }
}

是的,它是可能的

请尝试以下代码:

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

够了

我不知道有个Browserfield历史!我会检查这个,然后再给你回复…奇怪…在所有情况下都尝试返回true。尝试
yourBrowserField.getHistory().go(-1)我的坏…我返回了
错误
!这与@tipycalFlow的答案相同…:(…clearHistory()除外。我在许多应用程序中使用了这个类;这个类是否有效?是否有帮助?您是否测试过这个类?看看两者的区别;另一个答案一直都是正确的…我犯了一个愚蠢的错误…所以我已经接受了它…虽然您的答案也是正确的,所以我给了您+1:)