2017-08-29 13 views
0

アンドロイドスタジオに問題がありますwebviewとプログレスバーが含まれているフラグメントを作成しましたWebビューのURLの前にプログレスバーが表示されなくなりました。 これは、これはXMLファイルですページがアンドロイドスタジオにロードされる前にプログレスバーが隠されています

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); 
} 
} 

のJavaクラスファイルです:

<?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> 

私も今、このログでエラーがあります。

E/AndroidRuntime:致命的な例外を:メイン プロセス:com.mostafa.tahrirlounge、PID:8952 java.lang.NullPointerException:仮想メソッド 'android.content.res.Resources $ Theme android.content.Context.getTheme()'を呼び出そうとしていますandroid.app.AlertDialogでNA android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:154)でヌルオブジェクト参照 。(AlertDialog.java:109) android.app.ProgressDialogた。(ProgressDialog.java:77) com.mostafa.tahrirlounge.FacebookPageでandroid.app.ProgressDialog.showでandroid.app.ProgressDialog.show(ProgressDialog.java:110) (ProgressDialog.java:99) 。(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) android.view.View $ PerformClick.run(View.java:19757) (android.os.Handler.handleCallback(Handler.java:739)) (android.os.Handler.dispatchMessage(Handler.java:19757))にあります。 :95) a t android.os.Looper.loop(Looper.java:135) android.app.ActivityThread.main(ActivityThread.java:5233) at java.lang.reflect.Method.invoke(ネイティブメソッド) at java。 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:898) at lang.reflect.Method.invoke ZygoteInit.java:693)

+0

また、あなたのxmlファイルを表示することができますか? –

答えて

0

使用この

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

progressbar.showの "this"に問題があります。 –

+0

"this"ではなくgetActivity()を使用してください。 –

+0

私はそれを変更しましたが、フラグメントを開くときにアプリケーションが終了しました –

関連する問題