web-dev-qa-db-ja.com

Android:URLをstring.xmlリソースファイルに保存するにはどうすればよいですか?

クエリパラメータも含めて、完全修飾URLを保存しようとしています。

www.miosito.net?prova&reg=bis

しかし、&reg®エンティティに類似しており、Androidは、htmlエンティティが適切に記述されていないことを教えてください。

すべてのロケールが完全に異なるURLクエリパラメータのセットを使用するため、これが必要です。

[[CDATA[.. ]]で試しましたが、この構文はxmlパーサーに嫌われました。

18
realtebo

問題は&reqではなく、&自体にあります。 XML/HTMLの場合は、&エンティティ(または&)を使用する必要がありますが、URLの場合は、URLエンコード( ドキュメントを参照 )文字列を使用する必要があります。その場合は&%26に置き換える必要があると述べました。したがって、最終的な文字列は次のようになります。

www.miosito.net?prova%26reg = bis

16
Marcin Orlowski

次のように保存します。

<string name="my_url">"www.miosito.net?prova&amp;reg=bis"</string>

ここで、&amp;アンパサンド記号&と同等のXMLです。

5
iTurki

次のように、URLを二重引用符で囲むことができます。

_<string name="my_url">"www.miosito.net?prova&reg=bis"</string>
_

これは、Androidで文字列リソースを囲むための推奨される方法です。

アップデート1:詳細については、次のリンクをご覧ください。

http://developer.Android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

更新2:@ WebnetMobile.com:正解です。確かに:) '&'はxmlによって特殊文字として扱われ、引用符で囲むことはできません。試してみました
_www.miosito.net?prova%26reg=bis_

そしてそれもうまくいきませんでした。引用符で囲んでみましたが、うまくいきませんでした。私は何かが足りないのですか?
その間、以下は機能します:

_<string name="my_url">www.miosito.net%1$sprova%2$sreg=bis</string>_

そしてコードで:

Resources resources=getResources();
String url=String.format(resources.getString(R.string.my_url),"?","&") ;

'%1 $ s'および '%2 $ s'は、Cのprintfで使用されるものとよく似たフォーマット指定子です。 '%1 $ s'は文字列用、 '%2 $ d'は10進数用などです。オン。

1
sandyiscool

パーセントエンコーディングでうまくいくかもしれません: http://en.wikipedia.org/wiki/Percent-encoding 基本的には次のようなものになります:www.miosito.net?prova%26reg = bis

1
mehmetminanc