Advertisement
Guest User

ImprovedWebViewFragment

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