WebView不起作用
Android允许使用WebView在应用程序中显示URL的内容。 但是,由于某种原因,它不适合我。 以下是Iam使用的代码:
package com.news; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.webkit.WebView; import android.webkit.WebViewClient; public class NewsActivity extends Activity { WebView mWebView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) findViewById(R.id.webview); mWebView.setWebViewClient(new NewsClient()); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setDomStorageEnabled(true); mWebView.loadUrl("http://www.androidpeople.com"); } public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); } private class NewsClient extends WebViewClient { public boolean shouldOverrideUrlLoading(WebView view, String url) { System.out.println("URL: " + url); view.loadUrl(url); return true; } } }
这很明显!
您正在实现一个新的WebViewClient
,其中您正在重写shouldOverrideUrlLoading
方法。 此方法针对您正在加载的每个网址进行调用。 你在那里做什么? 你正在返回true(这意味着加载应该被重写),然后开始加载相同的URL! 因此,url加载永远不会发生。
只要删除该行:
mWebView.setWebViewClient(new NewsClient());
如果未添加,请在您的Android清单中添加以下内容
<uses-permission android:name="android.permission.INTERNET" />
这行必须位于AndroidManifest.xml文件的<manifest>元素中。
添加这一行: mWebView.setWebViewClient(new NewsClient());
但shouldOverrideUrlLoading
应该return false
。
下一篇: Android How to set a sound as ringtone with long press on button