387

リソース/値ファイルから次の 2 つの文字列を連結する必要があります。

<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on </string>
<string name="Toast_Memory_GameWon_part2"> flips !</string>

私はこのようにします:

String message_all_pairs_found = getString(R.string.Toast_Memory_GameWon_part1)+total_flips+getString(R.string.Toast_Memory_GameWon_part2);

Toast.makeText(this, message_all_pairs_found, 1000).show();

しかし、最初の文字列の末尾と 2 番目の文字列の先頭にあるスペースは消えています (トーストが表示されている場合) ...

私は何をすべきか ?

答えはこのドキュメントリンクのどこかにあると思います

それとも&amp ;「&」文字に使うようなものですか??

4

16 に答える 16

549

文字列の書式設定を使用している場合でも、文字列の先頭または末尾に空白が必要な場合があります。\これらのケースでは、 やxml:space属性でエスケープしても役に立ちません。&#160;空白には HTML エンティティを使用する必要があります。

&#160;改行できない空白に使用します。通常のスペースに
使用します。&#032;

于 2010-02-05T11:05:34.840 に答える
518

私は同じ問題に遭遇しました。画面上のフィールド名を表すリソース文字列の末尾を空白のままにしたいと考えていました。

この問題レポートで解決策を見つけました: https://github.com/iBotPeaches/Apktool/issues/124

これは、Duessi が示唆するのと同じ考えです。\u0020保持したい空白の XML に直接挿入します。

例 :

<string name="your_id">Score :\u0020</string>

置換はビルド時に行われるため、ゲームのパフォーマンスには影響しません。

于 2010-10-05T08:40:53.757 に答える
151

このドキュメントは、引用が機能することを示唆しています:

<string name="my_str_spaces">" Before and after? "</string>
于 2011-03-17T17:41:17.830 に答える
40

私は、strings.xml ファイルのスペース "\u0020" に UTF コードを使用しています。

<string name="some_string">\u0020The name of my string.\u0020\u0020</string>

よく働く。(Android は UTF コードが大好きです)

于 2016-10-24T06:24:35.053 に答える
8

あなたが本当にあなたがしていたようにそれをやりたいのなら、それをエスケープすることによって空白が関連していることを伝える必要があると思います:

<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on\ </string>
<string name="Toast_Memory_GameWon_part2">\ flips !</string>

ただし、これには文字列の書式設定を使用します。次のようなもの:

<string name="Toast_Memory_GameWon">you found ALL PAIRS ! on %d flips !</string>

それから

String message_all_pairs_found = String.format(getString(R.string.Toast_Memory_GameWon), total_flips);
于 2009-10-19T20:22:19.243 に答える
1

特に Android についてはわかりませんが、これは通常の XML 空白処理のように見えます。要素内の先頭と末尾の空白は、一般に重要ではないと見なされ、削除されます。試してくださいxml:space

<string name="Toast_Memory_GameWon_part1" xml:space="preserve">you found ALL PAIRS ! on </string>
<string name="Toast_Memory_GameWon_part2" xml:space="preserve"> flips !</string>
于 2009-10-19T05:18:31.910 に答える
-6

xml:space="preserve" では機能しません

だから私はそれを最も速い方法でやった=>

必要な場所に +" "+ を追加しただけです...

String message_all_pairs_found = getString(R.string.Toast_Memory_GameWon_part1)+" "+total_flips+" "+getString(R.string.Toast_Memory_GameWon_part2);
于 2009-10-19T05:45:30.357 に答える