Строка из активности 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-интерфейс более низкого уровня, который позволяет открывать и читать необработанные файлы, связанные с приложением, в виде простого потока байтов.

Что теперь делать? Я предлагаю вам взглянуть на другие типы вариантов хранения. Для вашего случая я настоятельно рекомендую использовать внутреннее хранилище.

Другие вопросы по тегам