10

ブラウザをロードした後、前のページに戻ろうとしていますが、戻るのに 3 回クリックする必要があります。戻るボタンのクリックをオーバーライドしようとしましたが、それでも 3 回のクリックが必要です。次のコードを使用してブラウザをロードしました。

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

4 に答える 4

2

前のページに戻るには、次の方法をお試しください。

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

お役に立てば幸いです。

于 2012-10-25T17:24:02.347 に答える
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();
        }   
    }
}
于 2011-12-28T13:40:37.177 に答える
0

何かをするたびに、currentLayoutStateとpreviousLayoutStateを更新して(これらの変数をアプリに追加して)、Androidの場合はonBackPressed()をオーバーライドし、そうでない場合はonKeyPress()をオーバーライドし、現在の状態と異なる場合はpreviousStateに移行してみてください。

どこかで州を追跡していると思いますよね?

編集:私はそれが州についてではないと思います。しかし、大きな違いはないはずです、私はあなたがアイデアを得ることを願っています:)

于 2012-07-29T03:44:38.980 に答える
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);
    } 
}
于 2012-04-02T06:39:48.363 に答える