我在资产文件夹中有一个带有 html 文件的应用程序。我想要这样当用户单击一个按钮时,在 Android 应用程序活动中,按钮的内容被放入一个字符串并将该字符串传递给 html 文件内的一个字符串。获取按钮的内容并将它们传递给我可以执行的活动内部的字符串。我想知道如何获取从按钮获得的字符串,并将信息传递给资产文件夹内的 html 文件?
3 回答
您是否只是尝试根据按钮推送显示具有不同数据的 HTML 文件?您可以在 HTML 文件中使用 %s 或 %d 以及 $1..$n 进行多次替换:
你有 $1%d 新的 $2%s。
伪代码
getHtmlFromAssets(myfile.html, unReadThings, things) 其中 unReadThings 是一个数字,而 things 是一个字符串。
说得通?
从概念上讲(尽管您将使用 HTML):http: //mobile.tutsplus.com/tutorials/android/android-sdk-format-strings/
或更少的 Android 特定:http: //javarevisited.blogspot.com/2011/12/java-string-replace-example-tutorial.html
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>
资源(包括资产)是用来阅读的。您可以打开raw
文件、调用文件、从xml 文件anim
中获取字符串。String
但是,您不能写入资源。
正如AssetsManager文档所述:
此类提供了一个较低级别的 API,允许您以简单的字节流形式打开和读取与应用程序捆绑在一起的原始文件。
现在,该怎么办?我建议您查看其他类型的 Storage Options。对于您的情况,我强烈建议使用 Internal Storage。