Blackberry браузер назад нажмите - PullRequest
10 голосов
/ 25 октября 2010

Я пытаюсь вернуться на предыдущую страницу после загрузки браузера, но для этого требуется три щелчка назад.Я попытался переопределить нажатие кнопки «Назад», но это все еще занимает три щелчка.Я использовал следующий код для загрузки браузера:

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 ]

2 голосов
/ 25 октября 2012

чтобы вернуться на предыдущую страницу, вы можете попробовать следующее:

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

Надеюсь, это будет полезно.

1 голос
/ 28 декабря 2011

Это решение для спины когда вы нажмете обратно (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();
        }   
    }
}
0 голосов
/ 29 июля 2012

каждый раз, когда вы что-то делаете, попробуйте обновить currentLayoutState и previousLayoutState (добавить эти переменные в ваше приложение), затем переопределить onBackPressed (), если для android или onKeyPress (), если нет, и попытаться перейти к предыдущему состоянию, если оно отличается от текущего состояния.

Полагаю, вы где-то отслеживаете состояния, верно?

РЕДАКТИРОВАТЬ: я вижу, это не о штатах. не должно иметь большого значения, хотя, я надеюсь, что вы поняли идею:)

0 голосов
/ 02 апреля 2012

код выглядит следующим образом

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