Jollen 的 Android 教学:WebView 体验与 findViewByID

  如果要继续体验 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

 

转载于:https://www.cnblogs.com/miiceic/archive/2009/12/09/1620053.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值