2013-11-21 77 views
0

我想要在断片中保存状态的webview。我想要的是。当我通过导航抽屉切换片段时,我想在片段的webview中保存状态。我发现了一些代码来保存状态,但实际上我不知道在哪里写它。有人可以帮我解决这个问题吗?我为我的英语抱歉..在片段中保存状态WebView

这里是saveState和

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    mWebView.saveState(outState); 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    mWebView.restoreState(savedInstanceState); 
} 

代码这是我的代码

public class Zastupovanie extends SherlockFragment{ 




    Context context; 



     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved) 
      { 
      View v = inflater.inflate(R.layout.zastupovanie, group, false); 
      final ProgressDialog pd = ProgressDialog.show(getActivity(), "", "Prosím čakajte. Prebieha načítavanie... ", true); 

      final WebView myWebView = (WebView) v.findViewById(R.id.zastupovanie2); 
      myWebView.setWebViewClient(new WebViewClient() { 
       @Override 
       public void onPageFinished(WebView view, String url) { 
        pd.dismiss(); 
       } 
      }); 

      myWebView.getSettings().setBuiltInZoomControls(false); 
      myWebView.getSettings().setSupportZoom(false); 
      myWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
      myWebView.getSettings().setJavaScriptEnabled(true); 
      myWebView.getSettings().setAllowFileAccess(true); 
      myWebView.getSettings().setDomStorageEnabled(true); 

      myWebView.getSettings().setDefaultZoom(ZoomDensity.FAR); 

      myWebView.loadUrl("http://soszm.edupage.org/substitution/?"); 

      return v; 
      } 

     } 

回答

1

你可以简单地这样的方法添加到您的片段是这样的:

public class Zastupovanie extends SherlockFragment{ 

    Context context; 
    private WebView myWebView 

    @Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     myWebView.saveState(outState); 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     myWebView.restoreState(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved) 
     { 
     View v = inflater.inflate(R.layout.zastupovanie, group, false); 
     final ProgressDialog pd = ProgressDialog.show(getActivity(), "", "Prosím čakajte. Prebieha načítavanie... ", true); 

     myWebView = (WebView) v.findViewById(R.id.zastupovanie2); 
     myWebView.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onPageFinished(WebView view, String url) { 
       pd.dismiss(); 
      } 
     }); 

     myWebView.getSettings().setBuiltInZoomControls(false); 
     myWebView.getSettings().setSupportZoom(false); 
     myWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
     myWebView.getSettings().setJavaScriptEnabled(true); 
     myWebView.getSettings().setAllowFileAccess(true); 
     myWebView.getSettings().setDomStorageEnabled(true); 

     myWebView.getSettings().setDefaultZoom(ZoomDensity.FAR); 

     myWebView.loadUrl("http://soszm.edupage.org/substitution/?"); 

     return v; 
     } 

    } 
+0

谢谢,它完美的作品:)但有时应用程序崩溃,但也许这是因为内存或有什么错误? – user2900523