我在assets文件夹中有一个带有html文件的应用程序。我想要它,以便当用户点击按钮时,在Android应用程序活动内部,按钮的内容被放入一个字符串并将字符串传递给html文件内的字符串。取出按钮的内容并将它们传递给我可以做的活动内部的字符串。我想知道如何从按钮获取字符串,并将信息传递给我的资产文件夹中的html文件?
答案 0 :(得分:0)
资源(包括资产)应该被阅读。您可以打开raw
文件,调用anim
文件,从String
xml文件中获取字符串。但是,您不能写到资源。
正如AssetsManager文档所述:
此类提供了一个较低级别的API,允许您将打开并读取与应用程序捆绑在一起的原始文件作为简单的字节流。
现在,该怎么办?我建议你研究一下other types of Storage Options。对于您的情况,我强烈建议Using the Internal Storage。
答案 1 :(得分:0)
您是否只是尝试使用基于按钮的不同数据显示HTML文件?您可以在HTML文件中使用%s或%d以及$ 1 .. $ n进行多次替换:
你有1%的新款$ 2%s。
伪代码
getHtmlFromAssets(myfile.html,unReadThings,things)其中unReadThings是一个数字,而东西是一个字符串。
有意义吗?
从概念上讲(虽然您将使用HTML):http://mobile.tutsplus.com/tutorials/android/android-sdk-format-strings/
或更少Android特定:http://javarevisited.blogspot.com/2011/12/java-string-replace-example-tutorial.html
答案 2 :(得分:0)
addJavaScriptInterface方法帮助我们将值从网页传递到Android XML视图,反之亦然。您可以从您的网页调用您的活动类方法 在创建:
WebView Wv = (WebView) findViewById(R.id.webView);
Wv.getSettings().setJavaScriptEnabled(true);
JavaScriptInterface myJavaScriptInterface
= new JavaScriptInterface(this);
Wv.getSettings().setJavaScriptEnabled(true);
Wv.addJavascriptInterface(myJavaScriptInterface, "AndroidFunction");
Wv.loadUrl("file:///android_asset/index.html");
然后创建一个类myJavaScriptInterface
class JavaScriptInterface {
Context mContext;
int tpressure;
JavaScriptInterface(Context c) {
mContext = c;
tpressure=0;
}
public int Pressure(){
return tpressure++;
}
}
示例html文件将是:
<head>
<title>jQuery Mobile page</title>
<script src="jquery-1.9.1.min.js"></script>
<script src="jquery.mobile-1.3.2.min.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.mobile-1.3.2.css" />
<script type="text/javascript">
$(document).ready(function () {
setInterval(function() {
$("#tire1").html(AndroidFunction.Pressure())
}, 2000);
});
</script>
</head>
<body>
<div id="some">
Tire Pressure:
</div>
<div id="tire1">
0
</div>
</body>