Android javascript接口调用的方法不会更新视图
我已经在这上面呆了一段时间了。我有一个webviewfragment,它有一个html文件,是我创建、加载的。html文件中有一些javascript,允许我调用android应用程序中的一些方法。以下是html:Android javascript接口调用的方法不会更新视图,android,Android,我已经在这上面呆了一段时间了。我有一个webviewfragment,它有一个html文件,是我创建、加载的。html文件中有一些javascript,允许我调用android应用程序中的一些方法。以下是html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>
<img src="Guideline1.gif" usemap="#Guideline9" border="0" />
<map name="Guideline9" id="generalGuideline9">
<area shape="rect" coords="124,329,290,357" onClick="Android.TestMethod();" />
</map>
</body>
</html>
}
这就让我的webviewfragment调用父活动的一个方法,该方法正在工作。Main活动实现CommunicateWithMyWebView接口。以下是包含addTab()方法的主活动代码部分:
tabsFrag是MainActivity显示的另一个片段。以下是tabsFrag中test1()函数的代码:
public void test1() {
Log.d("MyApp", "" + b1.getText());
}
b1是标签框架内的一个按钮。正如我所展示的,这段代码工作得很好。但如果我将log命令更改为:
public void test1() {
b1.setVisibility(View.GONE);
}
鉴于b1的可见性当前是可见的,它不会改变模拟器上的可见性(但不会崩溃,API 18),但会在我必须测试的平板电脑上暂停和崩溃。运行4.0.4的三星galaxy标签
如果我从任何其他方法调用tabsFrag中的test1()方法,只要该操作不是来自html文件中的映射区域单击,设置可见性就可以正常工作,不会出现崩溃或任何问题
我不确定如何在这里实现try-catch块
我能得到的任何帮助都会很好 使用ui线程更改视图状态
@JavascriptInterface
public void TestMethod() {
runOnUiThread(new Runnable(){
public void run(){
mCallback.addTab();
}
});
}
使用ui线程更改视图状态
@JavascriptInterface
public void TestMethod() {
runOnUiThread(new Runnable(){
public void run(){
mCallback.addTab();
}
});
}
非常感谢。我昨晚很晚才发现。它起作用了。我会接受你的回答。谢谢。我昨晚很晚才发现。它起作用了。我会接受你的回答。
@JavascriptInterface
public void TestMethod() {
runOnUiThread(new Runnable(){
public void run(){
mCallback.addTab();
}
});
}