2017-08-29 1 views
0

J'ai un problème avec android studio J'ai créé un fragment contient webview et progressbar la barre de progression a disparu avant que l'URL dans la vue web chargé comment résoudre ce problème? Ceci est le fichier de classe JavaProgressbar caché avant la page chargée dans android studio

public class FacebookPage extends Fragment { 
    View myView; 
    WebView myWebView; 
    WebSettings webSettings; 
    ProgressDialog progressDialog; 
    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { 
     myView=inflater.inflate(R.layout.facebook_page,container,false);     
     return myView; 
    }; 

    @Override 
    public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     myWebView = (WebView) view.findViewById(R.id.webview); 
     String url="https://www.facebook.com/TahrirLounge/"; 
     myWebView.setWebViewClient(new WebViewClient() { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url); 
       return true; 
      } 

      @Override 
      public void onPageFinished(WebView webView, String url) { 
       super.onPageFinished(webView, url); 
       view.findViewById(R.id.progressBar_facebook_page).setVisibility(View.GONE); 
      } 
     }); 

     myWebView.loadUrl(url); 
     webSettings = myWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
} 
} 

Ceci est le fichier xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <WebView 
     android:id="@+id/webview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
    </WebView> 

    <ProgressBar 
     android:id="@+id/progressBar_facebook_page" 
     style="?android:attr/progressBarStyle" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_centerInParent="true" 
     android:visibility="visible" /> 

</RelativeLayout> 

et j'ai aussi maintenant cette erreur au journal:

E/AndroidRuntime: FATAL EXCEPTION: main Processus: com.mostafa.tahrirlounge, PID: 8952 java.lang.NullPointerException: Tentative d'invocation de la méthode virtuelle 'android.content.res.Resources $ Theme android.content.Context.getTheme()' o na objet null référence à android.app.AlertDialog.resolveDialogTheme (AlertDialog.java:154) à android.app.AlertDialog. (AlertDialog.java:109) à android.app.ProgressDialog. (ProgressDialog.java:77) à android.app.ProgressDialog.show (ProgressDialog.java:110) à android.app.ProgressDialog.show (ProgressDialog.java:99) à com.mostafa.tahrirlounge.FacebookPage. (FacebookPage.java:24) à com.mostafa.tahrirlounge.MainActivity.onNavigationItemSelected (MainActivity.java:78) à android.support.design.widget.NavigationView $ 1.onMenuItemSelected (NavigationView.java:156) à android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected (MenuBuilder.java:822) à android.support.v7.view.menu.MenuItemImpl.invoke (MenuItemImpl.java:156) à android.support. v7.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:969) à android.support.design.internal.NavigationMenuPresenter $ 1.onClick (NavigationMenuPresenter.java:342) à android.view.View.performClick (View.java : 4757) at android.view.View $ PerformClick.run (View.java:19757) à l'adresse android.os.Handler.handleCallback (Handler.java:739) at android.os.Handler.dispatchMessage (Handler.java : 95) a t android.os.Looper.loop (Looper.java:135) à android.app.ActivityThread.main (ActivityThread.java:5233) à java.lang.reflect.Method.invoke (méthode native) à java. lang.reflect.Method.invoke (Method.java:372) à com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:898) à com.android.internal.os.ZygoteInit.main (ZygoteInit.java:693)

+0

Pouvez-vous montrer aussi votre fichier xml? –

Répondre

0

utilisent ce

public class FacebookPage extends Fragment { 

    WebView webView; 

    ProgressDialog progress; 
    @Nullable 
    @Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, 
          Bundle savedInstanceState) { 
     View mainView = (View) inflater.inflate(R.layout.facebook_page, container, false); 
     WebView webView = (WebView)mainView.findViewById(R.id.webview); 
     webView.getSettings().setJavaScriptEnabled(true); 


     webView.loadUrl("https://www.facebook.com/TahrirLounge/"); 

     progress = ProgressDialog.show(this, "Loading", 
        "Loading", true); 
     webView.setWebViewClient(new WebViewClient() { 

      public void onPageFinished(WebView view, String url) { 
       if (progress != null) 
        progress.dismiss(); 
      } 
     }); 
     return mainView; 


    } 
+0

Il y a un problème avec "this" dans la barre de progression.show –

+0

utilisez getActivity() au lieu de "this". –

+0

Je l'ai changé, mais maintenant, quand j'essaie d'ouvrir le fragment de l'application fermée –