I’m working with web view in Android and I try to add progress bar, here are my codes :
case R.id.studentsite:
getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.webview);
WebView wv1 = (WebView)findViewById(R.id.webview);
WebSettings ws1 = wv1.getSettings();
final Activity activity = this;
wv1.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
// Activities and WebViews measure progress with different scales.
// The progress meter will automatically disappear when we reach 100%
activity.setProgress(progress * 1000);
}
});
wv1.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
});
wv1.getSettings().setBuiltInZoomControls(true);
ws1.setJavaScriptEnabled(true);
wv1.setWebViewClient(new WebViewClient());
wv1.loadUrl("http://www.studentsite.gunadarma.ac.id");
break;
The problem is I got an exception on LOGCAT like this :
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): FATAL EXCEPTION: main
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): android.util.AndroidRuntimeException: requestFeature() must be called before adding content
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:181)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at com.ugsimplify.ugweb.callintent(ugweb.java:89)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at com.ugsimplify.ugweb$1.onClick(ugweb.java:29)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at android.view.View.performClick(View.java:2485)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at android.widget.CompoundButton.performClick(CompoundButton.java:99)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at android.view.View$PerformClick.run(View.java:9080)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at android.os.Handler.handleCallback(Handler.java:587)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at android.os.Handler.dispatchMessage(Handler.java:92)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at android.os.Looper.loop(Looper.java:123)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at android.app.ActivityThread.main(ActivityThread.java:3647)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at java.lang.reflect.Method.invokeNative(Native Method)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at java.lang.reflect.Method.invoke(Method.java:507)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-17 13:51:34.487: ERROR/AndroidRuntime(1331): at dalvik.system.NativeStart.main(Native Method)
Do you have any idea how to fix it? Thanks.
Call below line in
Oncreatejust aftersuper.oncreateYou are calling it in Button click, for which you would have already set a content.
Progress bar feature can only be requested before setContentView for the very first time.