はじめに
strings.xmlで定義したダブルクォーテーション(二重引用符)したい場合、「\"
」を使います。
ただ、WPFの文字列リソースだと%quot;
で表示されるのに…となったため簡単にまとめてみます。
比べてみる
"
を含む文字列をTextViewに指定してみます。
「xmlにべた書きする」「strings.xmlの文字列を指定する」「Activityから文字列を指定する」の3つで比べてみました。
xmlにべた書きする
activity_main.xml
<TextView
android:text="b"b"
/>
xmlでべた書きすると、\
は効かないため特殊文字である%quot;
と書かなければいけません。
strings.xmlの文字列を指定する
strings.xml
<string name="name_a">a\"a</string>
<string name="name_b">b"b</string>
activity_main.xml
<TextView
android:text="@string/name_a"
/>
<TextView
android:text="@string/name_b"
/>
strings.xmlの文字列だと、\
を付けないと"
は表示されません。
%quot;
だと表示されなくなります。
Activityから文字列を指定する
MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
textViewA.text = "a\"a"
textViewB.text = "b"b"
}
Activityから文字列を指定すると、\
を付けないと"
は表示されません。
%quot;
はXMLで使われる特殊文字なのでそのまま表示されます。
まとめ
%quot;
は、XMLで使われる特殊文字ですが、strings.xmlは特殊でkotlinなどActivityでの書き方と同様に\"
で良いみたいです。
しかも、%quot;
だと表示されなかったので、びっくりしました。