Ответ 1
чтобы вернуться на предыдущую страницу, вы можете попробовать следующее:
UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
Я надеюсь, что это будет полезно.
Я пытаюсь вернуться на предыдущую страницу после загрузки браузера, но для этого требуется три обратных щелчка. Я попробовал переопределить нажатие кнопки "Назад", но он по-прежнему занимает три клика. Я использовал следующий код для загрузки браузера:
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;
}
чтобы вернуться на предыдущую страницу, вы можете попробовать следующее:
UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen());
Я надеюсь, что это будет полезно.
Это решение для обратной когда вы нажмете на кнопку назад (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();
}
}
}
Код выглядит следующим образом
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);
}
}
каждый раз, когда вы что-то делаете, попробуйте обновить currentLayoutState и previousLayoutState (добавьте эти vars в свое приложение), затем переопределите onBackPressed(), если на андроиде или onKeyPress(), если нет, и попытайтесь перейти на предыдущий элемент, если он отличается от текущего состояния.
Я предполагаю, что вы отслеживаете состояния где-то, верно?
EDIT: я вижу это не о состояниях. не должен иметь большого значения, но, надеюсь, вы получите идею:)