Advertisement
Guest User

ImprovedWebViewFragment

a guest
Feb 9th, 2012
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.46 KB | None | 0 0
  1. public class ImprovedWebViewFragment extends Fragment {
  2.  
  3.     private WebView mWebView;
  4.     private boolean mIsWebViewAvailable;
  5.  
  6.     public ImprovedWebViewFragment() {
  7.     }
  8.    
  9.     public static ImprovedWebViewFragment loadFragment(String url) {
  10.        
  11.         ImprovedWebViewFragment swvf = new ImprovedWebViewFragment();
  12.         Bundle b = new Bundle();
  13.         b.putString("url", url);
  14.         swvf.setArguments(b);
  15.         return swvf;
  16.        
  17.     }
  18.  
  19.     /**
  20.      * Called to instantiate the view. Creates and returns the WebView.
  21.      */
  22.     @Override
  23.     public View onCreateView(LayoutInflater inflater, ViewGroup container,
  24.             Bundle savedInstanceState) {
  25.         if (mWebView != null) {
  26.             mWebView.destroy();
  27.         }
  28.         mWebView = new WebView(getActivity());
  29.         mWebView.loadUrl(getArguments() != null ? getArguments().getString("url") : null);
  30.         mIsWebViewAvailable = true;
  31.         return mWebView;
  32.     }
  33.    
  34.     /**
  35.      * Convenience method for loading a url. Will fail if {@link View} is not initialised (but won't throw an {@link Exception})
  36.      * @param url
  37.      */
  38.     public void loadUrl(String url) {
  39.         if (mIsWebViewAvailable) getWebView().loadUrl(url);
  40.         else Log.w("ImprovedWebViewFragment", "WebView cannot be found. Check the view and fragment have been loaded.");
  41.     }
  42.  
  43.     /**
  44.      * Called when the fragment is visible to the user and actively running. Resumes the WebView.
  45.      */
  46.     @Override
  47.     public void onPause() {
  48.         super.onPause();
  49.         mWebView.onPause();
  50.     }
  51.  
  52.     /**
  53.      * Called when the fragment is no longer resumed. Pauses the WebView.
  54.      */
  55.     @Override
  56.     public void onResume() {
  57.         mWebView.onResume();
  58.         super.onResume();
  59.     }
  60.  
  61.     /**
  62.      * Called when the WebView has been detached from the fragment.
  63.      * The WebView is no longer available after this time.
  64.      */
  65.     @Override
  66.     public void onDestroyView() {
  67.         mIsWebViewAvailable = false;
  68.         super.onDestroyView();
  69.     }
  70.  
  71.     /**
  72.      * Called when the fragment is no longer in use. Destroys the internal state of the WebView.
  73.      */
  74.     @Override
  75.     public void onDestroy() {
  76.         if (mWebView != null) {
  77.             mWebView.destroy();
  78.             mWebView = null;
  79.         }
  80.         super.onDestroy();
  81.     }
  82.  
  83.     /**
  84.      * Gets the WebView.
  85.      */
  86.     public WebView getWebView() {
  87.         return mIsWebViewAvailable ? mWebView : null;
  88.     }
  89.    
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement