2017-08-29 44 views
0

我有一个android工作室的问题我创建了一个包含webview和progressbar的片段进度条在web视图加载之前消失了url如何解决这个问题? 这是Java类文件在android工作室加载页面之前隐藏的进度条

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

这是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> 

,我现在也有在日志中这样的错误:

E/AndroidRuntime:致命异常:主要 进程:com.mostafa.tahrirlounge,PID:8952 java.lang.NullPointerException:尝试调用虚拟方法'android.content.res.Resources $ Theme android.content.Context.getTheme()'o na null object reference at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:154) at android.app.AlertDialog。(AlertDialog.java:109) at 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) at com.mostafa.tahrirlounge.MainActivity.onNavigationItemSelected(MainActivity.java:78) at android.support.design.widget.NavigationView $ 1.onMenuItemSelected(NavigationView.java:156) at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) at android.support。 v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969) at android.support.design.internal.NavigationMenuPresenter $ 1.onClick(NavigationMenuPresenter.java:342) at android.view.View.performClick(View.java :4757) at android.view.View $ PerformClick.run(View.java:19757) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java :95) a吨android.os.Looper.loop(Looper.java:135) 在android.app.ActivityThread.main(ActivityThread.java:5233) 在java.lang.reflect.Method.invoke(本机方法) 在java的。 lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:898) at com.android.internal.os.ZygoteInit.main( 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.urow –

+0

中使用getActivity()而不是“this”存在“this”问题。 –

+0

我改变了它,但现在当我尝试打开应用程序关闭的片段 –