strings.xml
の1つの文字列にパラメーターを設定したいのですが、このパラメーターはdouble値にする必要があります。したがって、私は%1$f
を使用します。ここ- http://developer.Android.com/reference/Java/util/Formatter.html 多くの例がありますが、いくつかのdouble/float
パラメータと2つ目だけに.
の後に2桁の数字を入れたいですか? %2$.2f
や%2.2$f
のような組み合わせを使用しようとしました。それらのどれも働いていませんでした。 %.1f
も機能しません。それで、float/double
内のstrings.xml
値を「カスタマイズ」する方法を誰かが知っていますか?ありがとう。
@David Airamの答えをここに追加するだけです。彼が与える「正しくない」解決策は実際には正しいですが、少し調整が必要です。 XMLファイルには次のものが含まれている必要があります。
_<string name="resource1">Hello string: %1$s, and hello float: %2$.2f.</string>
_
Javaコード:
_String svalue = "test";
float sfloat= 3.1415926;
String sresult = getString(R.string.resource1, svalue, sfloat);
_
@David Airamが報告した例外は、String
を_%f
_でフォーマット指定子にジャムしようとすることであり、浮動小数点型が必要です。 float
を使用してください。そのような例外はありません。
また、入力データが最初に文字列であった場合(たとえば、EditText
などから)、Float.valueOf()
を使用して文字列を浮動小数点数に変換できます。ただし、この例外はチェックされていないため、always try/catch valueOf()
操作を実行し、NumberFormatException
ケースを処理する必要があります。
%.1fは、「、」の後に1桁だけを表示したい場合に役立ちます
定義はstrings.xmlファイルです
<string name="price_format">$%,.2f</string>
//For using in databinding where amount is double type
Android:text="@{@string/price_format(model.amount)}"
//For using in Java runtime where priceOfModifier is double type
amountEt.setText(context.getResources().getString(R.string.price_format, priceOfModifier));