はじめに
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;だと表示されなかったので、びっくりしました。

