我写了一个很简单的程序,有两个html文件,启动程序先用webview调用第一个html,代码 browser.getSettings().setJavaScriptEnabled(true);
browser.addJavascriptInterface(loadWidget, "loadWidget");
browser.requestFocus();
browser.loadUrl("file:///android_asset/loader.html");
然后点击页面上一个按钮,想跳转到第二个html文件的界面 public class Loader
{
public void ChooseW2load(String str)
{
Toast.makeText(getApplicationContext(), str, 1).show();
browser.loadUrl("file:///android_asset/"+str+".html");
}
}下面是启动时的html代码<html>
<head>
<title>Android_Passing_HTML_JS</title> <head>
<script language="javascript">
function talkBack2Android() {
loadWidget.ChooseW2load(document.getElementById("myText").value);}
</script>
</head>
<body>
<h1>Webkit Browser</h1>
<p> Enter some data here <input type="text" id="myText" />
<p> <input type="button" onclick= "talkBack2Android()" value="Load">
</body>
</html>
这个程序在2.1上跑都没有问题,到2.2 和2.3上是就报错了,跳转的时候就意外停止了,报错: ERROR/AndroidRuntime(776): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
菜鸟急求大神们帮助!!!
browser.addJavascriptInterface(loadWidget, "loadWidget");
browser.requestFocus();
browser.loadUrl("file:///android_asset/loader.html");
然后点击页面上一个按钮,想跳转到第二个html文件的界面 public class Loader
{
public void ChooseW2load(String str)
{
Toast.makeText(getApplicationContext(), str, 1).show();
browser.loadUrl("file:///android_asset/"+str+".html");
}
}下面是启动时的html代码<html>
<head>
<title>Android_Passing_HTML_JS</title> <head>
<script language="javascript">
function talkBack2Android() {
loadWidget.ChooseW2load(document.getElementById("myText").value);}
</script>
</head>
<body>
<h1>Webkit Browser</h1>
<p> Enter some data here <input type="text" id="myText" />
<p> <input type="button" onclick= "talkBack2Android()" value="Load">
</body>
</html>
这个程序在2.1上跑都没有问题,到2.2 和2.3上是就报错了,跳转的时候就意外停止了,报错: ERROR/AndroidRuntime(776): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
菜鸟急求大神们帮助!!!
解决方案 »
- 获取网页打开来源
- androidpn局域网部署成功,但是放到外网服务器上就访问不了了。
- 没有名字的struct
- 为什么打不开source.android.com?被和谐了吗?
- Windows CE 6.5与Android区别?各有什么优缺点?
- android service机制
- 怎么使用V7包中ActionBar
- 想请教一个困扰我一天的问题了,有关Socket网络编程的,如下
- ViewPager中的Listview不能响应OnItemClick事件,却可以响应OnItemLongClick!!
- 菜鸟一枚问一下各位大佬HashMap的问题。
- 请教高手
- Could not find *.apk在android1.5中的解决办法
建议你起一个handler通过发消息来更新界面。
界面的更新必须在mainthread才可以操作。
可是为什么这个在2.1里可以运行呢,请教下怎么起handler发消息更新界面,本人菜鸟 不甚感激啊!!
public class Loader
{
public void ChooseW2load(String str)
{
启动一个线程把下面二行代码放到线程里面就OK了
Toast.makeText(getApplicationContext(), str, 1).show();
browser.loadUrl("file:///android_asset/"+str+".html");
}
}
这样开启线程? public void ChooseW2load()
{
new Thread(new Runnable()
{
public void run()
{
Toast.makeText(getApplicationContext(),commonData, 1).show();
browser.loadUrl("file:///android_asset/"+commonData+".html");
}
}).start(); }
还是不对额