2010-10-25 103 views
10

我想加載瀏覽器後回到上一頁,但它需要三次點擊才能完成。我試圖覆蓋後退按鈕,但仍需要三次點擊。我用下面的代碼加載瀏覽器:黑莓瀏覽器返回點擊

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

keyDown方法的一部分是什麼類?你有沒有嘗試在那裏放置一個調試打印輸出或斷點,看它是否被執行? – 2010-10-27 14:27:31

+1

如果您仍然在附近,請通過您的問題並將正確的答案標記爲「已接受」,方法是勾選分數下方的空白V圖標。謝謝。 – 2012-04-02 06:58:19

回答

1

這是當你點擊返回(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

代碼如下

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

,嘗試更新currentLayoutState和previousLayoutState(添加這些增值經銷商向您的應用程序),然後覆蓋onBackPres sed()如果在android或onKeyPress()如果不是,並嘗試轉換到previousState,如果它不同於當前狀態。

我猜你在跟蹤國家某處,對嗎?

編輯:我看到它不是關於國家。應該沒有太大的差別,雖然,我希望你的想法:)

2

返回到上一個頁面,你可以嘗試以下方法:

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

我希望這將是有益的。