2011-02-06 16 views
1

私のアプリはwebviewを使用していて、assets /フォルダにローカルhtmlファイルを読み込みます。 HTMLファイルwebviewにres/strings.xmlのすべての文字列を使用する方法がありますか?webviewのstrings.xmlの値を使用

Googleで一晩試してみましたが、どんな解決策も得られました。それは可能ですか?

+0

どういう意味ですか?その値をWebビューに表示しますか?その場合は、Resourceを使用してその文字列を取得し、コンテンツとしてWebビューに渡します。 – xandy

+0

どのように文字列を使いたいですか? Webviewとアンドロイドのオブジェクトは、javascriptを使用してお互いに話すことができます。 (デモはアンドロイドサンプルで利用可能)。例えば、私はアンドロイド(string.xmlに格納)から渡す警告メッセージをボタンクリックで表示させることができます。 –

+0

@xandy:はい、それは何をしたいのですが、私はそれを行う適切な方法を見つけたか、どのように、私はjavaの文字列を使用するが、HTMLファイルに渡す方法をshure webview – Jerry

答えて

1

@ doc_180のように、javascriptを使用することは素晴らしい選択です。このexampleは、文字列を挿入するのに適しています。

しかし、もちろん、あなたが簡単に何かをすることがあり、たとえば、あなたはWebViewのに渡しているHTMLは次のとおりです。

<body> 
    <h1>$REPLACE_THIS</h1> 
    ... 

あなたがHTMLを追加する前に、あなたは、単に文字列置換/正規表現を置き換えるかすることができますあなた自身の注入文字列のためのwebview。

など。

String html = ... // Any method to load the html file into string 
html = html.replace("$REPLACE_THIS", getResouces().getString(R.string.replacement)); 
webview.loadData(html, "text/html", "utf-8"); 

更新

それは彼がR.stringで定数文字列を参照して、動的に必要判明。方法は次のとおりです:

public String getStringFromRes(String name){ 
    try{ 
     int resId = R.string.class.getField(name).get(null); 
     return getResources().getString(resId); 
    }catch(Exception e){ 
     // no such string 
     return "empty"; 
    } 
} 
+0

こんにちは、これを見て、私はうまく動作しないshure。 webvievを次のようにロードしています。 webView.loadUrl( "file:///android_asset/findgps_en.html"); 私のアプリでローカルHTMLファイルが読み込まれていますが、アセット/フォルダ内の別のローカルHTMLファイルにリダイレクトされています – Jerry

+0

ここに何か不足しているかもしれませんが、これらの例は1つの文字列を変更/ ..しかし私がしたいのは、webviewでロードされたhtmlページのres/strings.xmlにすべての刺しゅうを使用できることです。 – Jerry

+0

これで、webviewで読み込まれたhtmlファイルの作成を可能にする方法はありません/res/strings.xmlのすべての文字列を使用するには? – Jerry

関連する問題