0

置き換えるときは、次のコードfragmentAfragmentB使用します。

 fragmentManager
        .beginTransaction()
        .replace(R.id.content_frame, new fragmentB())
        .addToBackStack(null)
        .commit();

しかし、戻るボタンを押すとfragmentA、以前の状態が保持されず、最初からリロードされます。fragmentA以前の状態に戻すにはどうすればよいですか?

4

1 に答える 1

0

フラグメントの onSaveInstanceState(Bundle outState) メソッドをオーバーライドしてみてください。webview の現在の URL をバンドルに保存し、フラグメントの onCreateView メソッドで取得するだけです。

public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
    ...
    if(savedInstanceState != null){
        String url = savedInstanceState.getString("URL");
        if(url != null){
            mWebView.loadUrl(url);
        }
    }
    ...
}

public void onSaveInstanceState(Bundle outState){ 
    super.onSaveInstanceState(outState);
    outState.putString("URL", mWebView.getUrl();
}
于 2013-07-25T00:56:09.487 に答える