我有一個英語教學應用程式,用戶可以在其中獲得一些帶有土耳其語的句子。我從 Strings.xml 檢索資料如下:
<.b>Possession (Aitlik)</b>\n\nhave
(sahip olmak)\npossess (sahip olmak)\nown (sahip olmak)\nbelong (ait olmak)\nconsist (-den meydana gelmek)\nlack (eksik olmak)\ninvolve
(i?ermek)\n\n<.b>Emotions (Duygular)</b>\n\nlike (sevmek)\ndislike (sevmemek)\nprefer (tercih etmek)\nappreciate (takdir etmek)\nneed
(ihtiyac? olmak)\nwish (istemek, dilemek)\nhope (ummak)\nvalue (de?er vermek)\nadore (hayran olmak)\nfear (korkmak)\nsurprise (?a??rtmak)\nenvy
(k?skanmak)\nhate (nefret etmek)\nlove (sevmek)\n\n
...
如果用戶愿意,我想隱藏單詞的翻譯。有沒有辦法做到這一點?到目前為止,我嘗試將例句與其翻譯分開,并從代碼中隱藏翻譯:
<string name=header_one>"<.b>Possession</b>"</string>
<string name=header_one_translation>"<.b>Aitlik</b>"</string>
binding.hideTranslationsButton.setOnClickListener {
binding.headerOneTranslation.isGone = true
binding.translationOne.isGone = true
binding.translationTwo.isGone = true
binding.translationThree.isGone = true
binding.translationFour.isGone = true
binding.translationFive.isGone = true
binding.translationSix.isGone = true
...
}
但它花了太多時間,感覺我的代碼變得更亂了,因為我有 50 個其他這樣的語法主題(我故意放點 --> <.b>)。
uj5u.com熱心網友回復:
您可以使用正則運算式
(\(.*\)) *(.*)
它只是說里面有一個組(第一個括號對 - 第 1 組),我們期望有一個左括號\(
然后除了.任何計數的換行符之外的任何東西*(可能 更好,而不是*它可以跳過空專案)
然后我們期望一個右括號\)
那么可能會有一些我們不關心的空間 *
然后是另一組(第 2 組),任何計數.*(再次, 似乎更合適)
所以你可以使用類似的東西
"(\(. \)) *(. )".toRegex().matches(getString(R.string.blah_blah)).forEach{
val en = it.groups[1]
val tr = it.groups[2]
}
uj5u.com熱心網友回復:
在recycleview的配接器中使用recycleview并處理隱藏文本
uj5u.com熱心網友回復:
也許考慮重新排序你的布局。
不知道你的結構是什么。
<LinearLayout id=root>
<LinearLayout id=english>
<LinearLayout id=sentence1/>
<LinearLayout id=sentence2/>
</LinearLayout>
<LinearLayout id=turkish>
<LinearLayout id=translate1/>
<LinearLayout id=translate2/>
</LinearLayout>
</LinearLayout>
現在你隱藏了土耳其布局。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/425280.html
