[英]Progressbar hidden before page loaded in android studio
I have a problem with android studio I created a fragment contains webview and progressbar the progress bar disappeared before the url in the web view loaded how to solve this problem? 我在android studio中遇到了问题,我创建了一个包含webview和progressbar的片段,进度条消失了,然后在加载Web视图中的URL之前如何解决此问题? This is the java class file
这是java类文件
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);
}
}
This is the xml file: 这是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>
and I also now have this error at the log: 而且我现在在日志中也有此错误:
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.mostafa.tahrirlounge, PID: 8952 java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources$Theme android.content.Context.getTheme()' on a 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) at android.app.ProgressDialog.show(ProgressDialog.java:110) at android.app.ProgressDialog.show(ProgressDialog.java:99) at 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.pe E / AndroidRuntime:致命例外:主进程:com.mostafa.tahrirlounge,PID:8952 java.lang.NullPointerException:尝试调用虚拟方法'android.content.res.Resources $ Theme android.content.Context.getTheme()' android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:154)在android.app.AlertDialog。(AlertDialog.java:109)在android.app.ProgressDialog。(ProgressDialog.java:77)在null对象上引用.app.ProgressDialog.show(ProgressDialog.java:110)位于android.app.ProgressDialog.show(ProgressDialog.java:99)位于com.mostafa.tahrirlounge.FacebookPage。(FacebookPage.java:24)位于com.mostafa.tahrirlounge位于android.support.design.widget.NavigationView $ 1.onMenuItemSelected(NavigationView.java:156)的android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:的.MainActivity.onNavigationItemSelected(MainActivity.java:78) 822)在android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156)在android.support.v7.view.menu.MenuBuilder.pe rformItemAction(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) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5233) at java.lang.reflect.Method.invoke(Native Method) at 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)
rformItemAction(MenuBuilder.java:969)在android.support.design.internal.NavigationMenuPresenter $ 1.onClick(NavigationMenuPresenter.java:342)在android.view.View.performClick(View.java:4757)在android.view.View $在android.os.Looper.loop(Looper)上的android.os.Handler.handleCallback(Handler.java:739)上的PerformClick.run(View.java:19757)在android.os.Handler.dispatchMessage(Handler.java:95)上.java:135),位于android.app.ActivityThread.main(ActivityThread.java:5233),位于java.lang.reflect.Method.invoke(本机方法),位于java.lang.reflect.Method.invoke(方法。java:372) )在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:898)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
use this 用这个
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.