Как вернуться в историю браузера с помощью физической кнопки «Назад»? - PullRequest
1 голос
/ 28 марта 2012

Я создаю приложение, в котором я открываю BrowserField, и пользователь может перейти далее к ссылкам, присутствующим на веб-странице.Проблема в том, что когда я нажимаю кнопку физического возврата, отображается предыдущий экран, а я хочу представить предыдущую страницу в самом BrowserField.Как это сделать?Это вообще возможно?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Вам необходимо использовать 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 голос
/ 28 марта 2012

Да, это Возможно .

Попробуйте этот код:

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

Достаточно;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...