Java addToBackState()不';t还原片段状态

Java addToBackState()不';t还原片段状态,java,android,android-fragments,fragmenttransaction,Java,Android,Android Fragments,Fragmenttransaction,当我用fragmentB替换fragmentA时,我使用以下代码: fragmentManager .beginTransaction() .replace(R.id.content_frame, new fragmentB()) .addToBackStack(null) .commit(); 但是,当我按下back按钮时,fragmentA不会保持以前的状态,而是从一开始就重新加载。 如何还原以前的片段a状态?您可以尝试重写

当我用
fragmentB
替换
fragmentA
时,我使用以下代码:

 fragmentManager
        .beginTransaction()
        .replace(R.id.content_frame, new fragmentB())
        .addToBackStack(null)
        .commit();
但是,当我按下back按钮时,fragmentA不会保持以前的状态,而是从一开始就重新加载。
如何还原以前的
片段a
状态?

您可以尝试重写片段的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();
}

“从头开始重新加载”是什么意思?我用onCreateView(…)方法将一些数据加载到WebView中。我希望这个片段不要再加载它,而是显示已经加载的数据。