Sample9_6_Activity.java:
package com.bn.chap9.translate;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.EditText;
public class Sample9_6_Activity extends Activity {
EditText et;
WebView wv;
Handler hd = new Handler();
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et = (EditText) findViewById(R.id.myEditText1);
wv = (WebView) findViewById(R.id.myWebView1);
WebSettings webSettings = wv.getSettings();//取得WebSettings
webSettings.setJavaScriptEnabled(true);//设定可执行JavaScript
wv.addJavascriptInterface(this, "irdc");//设定给html调用的对象及名称
String url = "file:///android_asset/google_translate.html";//载入assets/google_translate.html
wv.loadUrl(url);
}
/* 2 该过程由“翻译”按钮触发*/
public void runJavaScript(){
hd.post(new Runnable(){
public void run(){
String str=et.getText().toString().trim();
if(str.length()!=0){
wv.loadUrl("javascript:translate('"//调用google_translate.html里的javascript
+ str+ "')");
}}});
}
}
google_translate.html:
<html>
<head>
<meta
http-equiv="Content-Type"
content="text/html; charset=GB2312" />
</head>
<script type="text/javascript" src="http://www.google.com/jsapi">
</script>
<!-- 4 该函数由3调用 -->
<script type="text/javascript">
google.load("language", "1");
function mytranslate(strInput,target)
{
try
{
google.language.translate
(strInput, "", "zh-TW", function(result)
{
if (!result.error)
{
document.getElementById(target).innerHTML
=result.translation;
}
else
{
google.language.translate
(strInput, "en", "zh-TW", function(result)
{
if (!result.error)
{
document.getElementById(target).innerHTML
=result.translation;
}
else
{
document.getElementById(target).innerHTML
=result.translation;
}
});
}
});
}
catch(e)
{
alert("Error is:"+e);
}
}
</script>
<!-- 3 该步骤由2 触发 -->
<script language="javascript">
function translate(strTranslate)
{
alert(strTranslate);
mytranslate(strTranslate, "showDiv");
alert("Done!");
}
</script>
<body>
<p align="center">
<!-- 1 按钮是第一步 -->
<input type="button" value="翻译" onClick="window.irdc.runJavaScript()">
</p>
<!-- 5 该显示控件由4实现后的翻译结果 -->
<div id="showDiv"
style="text-align:center;font-size:18pt;
padding-left:5px; padding-right:5px;
padding-top:2px; padding-bottom:2px">
</div>
</body>
</html>