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中。我希望这个片段不要再加载它,而是显示已经加载的数据。