0

アクティビティから変数を入れて、htmlで表示したかったのです。以下は、変数をWebviewに挿入する方法ですが、htmlからデータを取得して「textview」形式で表示する方法がわかりません。

編集

Java

    webView = (WebView)findViewById(R.id.webView);
    webView.setWebViewClient(new WebViewClient());
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
    webView.getSettings().setDatabaseEnabled(true);
    webView.getSettings().setDatabasePath("/data/data/com.example.hybrid/hybrid_user");
    webView.loadUrl("file:///android_asset/www/index.html");
    webView.loadUrl("javascript:callFromActivity(\""+userid+"\")");

html

<body>
<form>
    <fieldset>
        <legend>Hybrid Application</legend>
        <p>
            <label>UserName: </label> 
        </p>
        <p id="mytext">Hello!</p>
        <p>
            <label>Mobile Number :</label>
            <input type = "text"
                        id = "mobileNum" />
        </p>
            <button type="button" 
            onclick="updateRecord()">Submit</button>    
                <div id="output"></div> 
    </fieldset>
</form> 

 <script>
    function errorHandler(transaction, error){
        alert('Error:'+error.message+' (Code '+error.code+')');
        return true;
    }
    window.onerror = errorHandler;
    var shortName = 'hybrid_user';
    var version = '1.0';
    var displayName = 'Hybrid Database';
    var maxSize = 65536;
    var db = openDatabase(shortName, version, displayName, maxSize);

    function updateRecord(id, textE1){
        database.transaction(function(tx){
            tx.executeSql("UPDATE hybrid_user SET mobile = ? WHERE userid = ?", [textE1.innerHTML, id], null, onError);
        })
    }

    function callFromActivity(msg){
        document.getElementById("mytext").innerHTML = msg;          
    }
</script>

私はhtmlを初めて使用しますが、コードの何が問題になっているのかわかりませんuserid。htmlページに表示されませんでした。コメントや回答をいただければ幸いです。

更新を編集

 webView.loadUrl("javascript:callFromActivity(\""+userid+"\")");

どうやら、システムはこのコード行を通過しなかったようです。とにかくこのコードを通過することはありますか?

4

2 に答える 2

0
    webView.setWebViewClient(new WebViewClient(){

        @Override
        public void onPageFinished(WebView view, String url){
            webView.loadUrl("javascript:callFromActivity(\""+userid+"\")");
        }
    });

私はこれで私の問題を解決しました。ページの読み込みが完了すると、上記のコードが実行さuseridれ、アクティビティからが取得されます。

于 2013-03-22T02:44:07.197 に答える
0

次のような値のinnerHTMLを変更してみてください。

function callFromActivity(msg) {
   document.getElementById("mytext").value = msg;          
}
于 2013-03-21T04:10:49.583 に答える