2010-10-25 9 views
10

Estoy tratando de volver a la página anterior después de cargar un navegador, pero se necesitan tres clics de retroceso para hacerlo. Traté de anular el clic en el botón Atrás, pero todavía se necesitan tres clics. Solía ​​siguiente código para cargar el navegador:Respaldo de Blackberry haga clic en

BrowserSession browserSession; 
browserSession = Browser.getDefaultSession(); 
try{ 
    browserSession.displayPage(mapLocation); 
}catch(Exception e){ 
    e.printStackTrace(); 
} 

EDITAR copiado de respuesta por el usuario:

quiero ir a la pantalla anterior no la página previa en el navegador. El código para el botón de retroceso:

protected boolean keyDown(int keycode, int status) { 
    if(Keypad.key(keycode) == Keypad.KEY_ESCAPE) { 
     _theApp.popScreen(this); 
     return true; 
    } 
    return false; 
} 
+0

¿De qué clase es parte el método keyDown? ¿Has intentado poner allí una impresión de depuración o un punto de interrupción para ver si se ejecuta? –

+1

Si todavía está por aquí revise sus preguntas y marque las respuestas correctas como se aceptan marcando los iconos V vacíos debajo de su puntaje. Gracias. –

Respuesta

1

Esta es la solución para volver cuando se hace clic en la parte posterior (ESC) a continuación, que le ayudará Nota: Disponible OS5.0 tarde

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

Código es el siguiente

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

cada vez que haces algo, tratar de actualizar currentLayoutState y previousLayoutState (añada esas vars a su aplicación) y luego anular onBackPres sed() si está en android o onKeyPress() si no e intenta hacer la transición a previousState si es diferente del estado actual.

Supongo que estás haciendo un seguimiento de los estados en algún lugar, ¿verdad?

EDITAR: veo que no se trata de estados. no debe hacer mucha diferencia, sin embargo, espero que usted consigue la idea :)

2

para volver a la página anterior puede intentar lo siguiente:

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

espero que será útil.