Строка из активности Android в строку в HTML внутри папки активов
У меня есть приложение с html-файлом внутри папки активов. Я хочу, чтобы, когда пользователь нажимает кнопку, внутри действия приложений Android, содержимое кнопки помещается в строку и передает строку в строку внутри html-файла. Взяв содержимое кнопки и передав его в строку внутри упражнения, которое я могу выполнить. Я хочу знать, как я могу взять строку, полученную от кнопки, и передать информацию в html-файл внутри папки с активами?
3 ответа
Вы просто пытаетесь отобразить HTML-файл с другими данными, основанными на нажатии кнопки? Вы можете использовать%s или%d в вашем HTML-файле, а также $1..$n, чтобы сделать несколько замен:
У вас есть $1%d new $2%s.
Псевдо-код
getHtmlFromAssets(myfile.html, unReadThings, вещи), где 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
Метод addJavaScriptInterface помогает нам передавать значения из веб-страницы в представление XML для Android или наоборот. Вы можете вызвать метод класса активности из вашей веб-страницы.
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
файл, позвоните anim
файл, получить строку из String
XML-файл. Однако вы не можете писать на ресурс.
В документации AssetsManager говорится:
Этот класс представляет API-интерфейс более низкого уровня, который позволяет открывать и читать необработанные файлы, связанные с приложением, в виде простого потока байтов.
Что теперь делать? Я предлагаю вам взглянуть на другие типы вариантов хранения. Для вашего случая я настоятельно рекомендую использовать внутреннее хранилище.