如果要继续体验 View 的乐趣,那么「WebView」这个 View 无疑是最佳人选。android.webkit.WebView 是使用「WebKit」技术的 View,主要的用途是「显示网页」。使用 WebView,我们可以在 Android 应用程序里显示自已的 HTML 文件,或是在线的网页。
接下来请依照以下步骤,建立我们的第二个 Android 应用程序「Hello Web」。
建立新项目: HelloWeb
建立一个新的 Android 项目,如图1。
图1: 建立 Hello Web 项目
并且撰写 HelloWeb.java 程序如下:
package com.moko.web;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import com.moko.web.R;
public class HelloWeb extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final String mimetype = "text/html";
final String encoding = "utf-8";
WebView wv;
wv = (WebView) findViewById(R.id.wv);
wv.loadData(mimetype, encoding);
}
}
上述程序代码采用 XML layout 方式来安排 UI,因此接下来的工作就是编辑 XML layout 档案。
规划 UI: main.xml
编辑 main.xml 来规划「Hello Web」的 UI 如下:
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/wv"
/>
在这里我们定义了「WebView」标签,并且指定「WebView」的 ID 为「wv」。透过指定「ID」属性给 View 的方式,便能「让 Android 应用程序在执行时期(run-time)找到指定的 View 对象」。
使用 View 的 ID 属性: findViewByID
怎么在执行时期,找到「XML layout」安排好的 View 呢?看到 HelloWeb.java 的程序片断如下:
final String mimetype = "text/html";
final String encoding = "utf-8";
WebView wv;
wv = (WebView) findViewById(R.id.wv);
wv.loadData("
呼叫 findViewByID() 方法,即可在执行时期「动态取得 View 对象」。当我们在 main.xml 里加入 WebView 标签,「存盘」后,R.java 资源索引文件也会跟着更新,我们可透过「R.id.wv」来索引到 WebView 对象。以下是 R.java 的内容:
package com.moko.web;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int wv=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
取得 WebView 对象后,呼叫 WebView 的 loadData() 方法,将 HTML 内容加载到 WebView 对象里,并显示在 Activity 上。loadData() 的参数如下:
第一个参数:HTML 内容
第二个参数:MimeType 类型,指定为 text/html,即 HTML 类型文件
第三个参数:文字编码方法,指定为 utf-8(Unicode)
Hello Web 范例程序所加载的 HTML 文件是一个 卷标,因此我们在窗口上所看到的内容就是一张图档,如下图(使用真正的 Google Phone 做测试)。
图: Hello Web 执行结果。
--jollen
原文(http://www.miiceic.org.cn/07/0710/071010/200906301645411.asp)
中程在线(北京)科技有限公司
中国信息产业培训网
www.miiceic.org.cn
咨询热线:400-7068-123