平常我們是以
getString(R.string.id)
的方式取得 resource string 的值
當 resource id 的變數名是有規律的時候,我們能以程式的方式取得其值
假設我們的 /values/strings.xml 的內容如下
<string name="strResult1">三爻全陽,表示全動,是天體之象。</string> <string name="strResult2">三爻全陰,表示全靜,是大地之象。</string> <string name="strResult3">上爻為陽爻,中下爻為陰爻。</string> <string name="strResult4">上爻為陰爻,中下爻為陽爻。</string> <string name="strResult5">下爻為陽爻,中上爻為陰爻。</string> <string name="strResult6">下爻為陰爻,中上爻為陽爻。</string> <string name="strResult7">中爻為陽爻,上下爻為陰爻。</string> <string name="strResult8">中爻為陰爻,上下爻為陽爻。</string>
MainActivity.kt
var ff = 1 var sResult = applicationContext.stringFromResourcesByName("strResult$ff") // 傳回 "三爻全陽,表示全動,是天體之象。" ... ... private fun Context.stringFromResourcesByName(resourceName: String): String { return try { val resourceId = resources.getIdentifier( resourceName, "string", "完整package name" ) getString(resourceId) } catch (e: Resources.NotFoundException) { "未知錯誤" } }
沒有留言:
張貼留言