質問

しています連結これらの二つの文字列から資源と値ファイル:

<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();

その空間末の最初の文字列の先頭の文字列 が消えてしまいます(トーストが表示されます)...

どうしたらよいですか?

くのではないでしょうか答えはどこからこの 文書のリンク

それとも何かのように使用 &amp ; の"&"う!!

役に立ちましたか?

解決

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

非破壊可能な空白のための使用&#160;
定期的なスペースのために使用し&#032;ます。

他のヒント

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

私は、この問題レポートに解決策を見つけた: https://github.com/iBotPeaches/Apktool /問題/ 124

このはDuessiが提案するのと同じ考え方です。直接のブランクのためのXMLで\u0020挿入します保存したいと思います。

例:

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

の交換は、したがって、それはあなたのゲームのパフォーマンスには影響しません、ビルド時に行われます。

私はただのstrings.xmlファイル内のスペースのための "\ U0020" UTFコードを使用します。

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

は素晴らしい作品。 (AndroidはUTFコードを愛している)

この質問は古いかもしれないが、今のようにそれを行うための最も簡単な方法は、引用符を追加することです。 たとえばます:

<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_part1">you found ALL PAIRS ! on\ </string>
<string name="Toast_Memory_GameWon_part2">\ flips !</string>
しかし、私は<のhref = "http://developer.android.com/reference/java/lang/String.html#format%28java.lang.String,%20java.lang.Objectを使用すると思います。.. 。%29" のrel = "noreferrer">このための書式設定文字列。次のような何かます:

<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);

文字列リソース値で使用する "" ます。

例:    "スペースで値が"

または

スペースの使用\ U0020コードます。

ものが 私が使っている\u0020

<string name="hi"> Hi \u0020 </string>
<string name="ten"> \u0020 out of 10  </string>
<string name="youHaveScored">\u0020 you have Scored \u0020</string>

Javaファイル

String finalScore = getString(R.string.hi) +name+ getString(R.string.youHaveScored)+score+ getString(R.string.ten);
               Toast.makeText(getApplicationContext(),finalScore,Toast.LENGTH_LONG).show();

スクリーンショット こちらの画像を表示する作業のこのコード

すべての答えはここに私のために動作しませんでした。代わりに、私はこの

やったXML内の文字列の末尾にスペースを追加します
<string name="more_store">more store<b> </b> </string>

の引数は、プログラムのスペースを追加するために行うことができます。これらのケースは、多くの場合の連結に使用されますので、私は狂気を停止し、ちょうど古い+ " " +を行うことを決めました。これらは、の最ものヨーロッパの言語で意味をなすだろう、私が集まるでしょう。

私は特にアンドロイドについては考えてきませんが、取り扱い空白通常の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>

これは実際に(XMLでの空白を維持する方法)の質問に答えていないかもしれないが、それは、より優雅に根本的な問題を解決することがあります。

の代わりの書式文字列を使用してXMLリソース、CONCATENATEのみに依存。 だから、最初の空白を削除します。

<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 = 
      String.format(Locale.getDefault(), 
                    "%s %d %s", 
                    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();

CDATAを使用しての解決策もあります。例:

<string name="test"><![CDATA[Hello          world]]></string>

しかし、一般的に、私は\u0020は十分に良いと思います。

:後で他の文字列と連結する目的のためのスペースが必要な場合は、

、あなたはあなたの文字列の定義に引数を追加するアプローチを書式文字列を使用することができます

<string name="error_">Error: %s</string>

次にとして文字列をフォーマットします

String message = context.getString(R.string.error_, "Something went wrong")

これはXMLでは動作しません:スペース= "保存"

私はそれを最も簡単な方法をやったので、=>

I単純に加算+」「+どこ私はそれを必要と...

String message_all_pairs_found = getString(R.string.Toast_Memory_GameWon_part1)+" "+total_flips+" "+getString(R.string.Toast_Memory_GameWon_part2);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top