我在Android中使用网页视图,我尝试添加进度条,这是我的代码:
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;
问题是我在LOGCAT上有这样的例外:
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)
你知道如何解决它吗?感谢。
答案 0 :(得分:1)
在Oncreate
super.oncreate
下方拨打电话
getWindow().requestFeature(Window.FEATURE_PROGRESS);
您在按钮点击中调用它,您已经为其设置了内容。 进度条功能只能在setContentView第一次之前请求。
答案 1 :(得分:0)
Hi Here is problem that you have call.
getWindow().requestFeature(Window.FEATURE_PROGRESS); before setContentView(R.layout.webview);
It should be call below the setContentView(R.layout.webview);
Answer :-
setContentView(R.layout.webview);
getWindow().requestFeature(Window.FEATURE_PROGRESS);
答案 2 :(得分:0)
根据logcat,您在设置contentView后使用了requestFeature。
您发布的代码部分非常完美。
我怀疑你已经在其他地方使用过setContentView,可能在onCreate方法中。