2013-11-21 5 views
0

Я хотел бы иметь веб-представление, которое сохраняет состояние во Фрагменте. Что я хочу. Я хочу сохранить состояние на моем веб-просмотре в фрагменте, когда я переключаю фрагмент на навигационный ящик. Я нашел код для сохранения состояния, но на самом деле я не знаю, где его написать. Может, кто-нибудь поможет мне в этом, пожалуйста? Я извиняюсь за мой английский ..Сохранить состояние 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

Смежные вопросы