Android SDK Tutorials系列 - Hello Views - Web View
2011-11-27 12:05
309 查看
Web View
WebView允许你创建自己的窗口来浏览网页(甚至是开发一个完整的浏览器)。本教程里,你将创建一个简单的Activity,能够浏览和导航网页。创建一个项目:HelloWebView.
修改
res/layout/main.xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?> <WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" />
打开
HelloWebView.java,在类的顶部声明一个
WebView对象:
WebView mWebView;
修改onCreate()方法如下:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("http://www.google.com"); }
通过Activity界面里的WebView元素来初始化成员WebView;调用getSettings()方法获得WebSettings对象,然后调用其
setJavaScriptEnabled(boolean)方法设置WebView支持JavaScript。最后,调用loadUrl(String)方法加载一个初始网页。
因为这个应用要访问互联网,需要在Android manifest文件里设置相应的权限。打开
AndroidManifest.xml文件,将下面的内容添加为节点<manifest>的元素:
<uses-permission android:name="android.permission.INTERNET" />
同时在manifest文件里,给Activity设置"NoTitleBar"主题去除标题栏,为网页显示留出更大空间:
<activity android:name=".HelloGoogleMaps" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
运行应用。
你现在拥有一个最简单的页面浏览器,其实它还称不上一个真正的浏览器,一旦你点击一个链接,默认的Android浏览器会处理这个Intent并打开新的页面,因为这个Activity技术上还没有处理打开新链接的请求。除了添加一个intent
filter来打开网页,你可以重写WebViewClient类来让Activity处理它自己的URL请求。
在类HelloWebView里面内嵌一个类:
private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }
在onCreate(Bundle)方法末尾,设置上面自定义的类
HelloWebViewClient的实例作为WebViewClient:
mWebView.setWebViewClient(new HelloWebViewClient());
这行代码让在初始WebView对象里面打开任何网页。
这行代码创建一个WebViewClient,让WebView对象自己加载自身被点击的URL。
重新运行应用,新页面也在当前Activity被加载。但是你不能返回先前打开的页面。为了实现这个功能,需要处理设备上的BACK按钮来回到前面的页面,而不是退出应用。
为了处理BACK按钮点击事件,在类HelloWebView里面添加下面的方法:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }
在当前Activity里面,无论何时按下一个按钮,都会调用
onKeyDown(int, KeyEvent)回调函数。条件语句使用KeyEvent来检查按下的是否是BACK按钮,并检查WebView是否真的能够返回上一个页面(是否有浏览历史)。如果两个条件都满足,就调用goBack()方法来返回WebView历史的上一步。返回true表示这个事件已经被处理过了。如果条件不满足,事件会被发送回系统。
重新运行应用。现在就能够在当前Activity打开新的连接,并能导航返回前面浏览的页面。
当打开应用,应该能看到如下画面:
返回 Android
SDK Tutorials系列 - Hello Views
转载请注明出处: /article/11130792.html
相关文章推荐
- Android SDK Tutorials系列 - Hello Views - Grid View
- Android SDK Tutorials系列 - Hello Views - Table Layout
- Android SDK Tutorials系列 - Hello Views - Gallery
- Android SDK Tutorials系列 - Hello Views - Relative Layout
- Android SDK Tutorials系列 - Hello Views - Form Stuff
- Android SDK Tutorials系列 - Hello Views - List View
- [译文]Hello Views - Android SDK Tutorials系列
- Android SDK Tutorials系列 - Hello Views - Linear Layout
- Android SDK Tutorials系列 - Hello Views - Date Picker
- Android SDK Tutorials系列 - Hello Views - Time Picker
- [译文]Time Picker - Android SDK Tutorials系列
- [译文]Notepad Exercise 1 – Android SDK Tutorials系列
- [译文]Form Stuff - Android SDK Tutorials系列
- Android SDK Tutorials系列 - Hello Views - Spinner
- [译文]Spinner - Android SDK Tutorials系列
- Android SDK Tutorials系列 - Hello Views - Auto Complete
- Android SDK Tutorials系列 - Hello Views - Tab Layout
- [译文]Auto Complete - Android SDK Tutorials系列
- [译文]Gallery - Android SDK Tutorials系列
- Android SDK Tutorials系列 - Hello Views - Google Map View