Jetpack Compose 中是否有一种方法可以检索修饰符的 contentDescription 属性的字符串资源的真实字符串值?

Cor*_*ple 2 string resources android tostring android-jetpack-compose

我将 Jetpack compose 用于 Android 应用程序。我想检索已在 Resources.Strings 中声明的字符串的字符串值。我尝试了一切,甚至上下文,但似乎没有任何效果。更具体地说,我想将 Resources 中的 String 值注册为可组合项修饰符的 contentDescription ,以便 TalkBack 可以将该值读取为用户的系统语言。即使在我使用用户方法时,调试器也会记录 int 值而不是 String .toString()。这是代码。

这是文件中的字符串values/strings.xml

<string name="my_string">Something</string>
Run Code Online (Sandbox Code Playgroud)

这是可组合项的一些代码:

....modifier = Modifier
        .fillMaxWidth()
        .focusRequester(focusRequesters[1])
        .clearAndSetSemantics { contentDescription = R.string.mystring.toString() }
)
val test= (R.string.my_string)
Log.d("Test",""+ test )
Run Code Online (Sandbox Code Playgroud)

调试器向 Android Studio 的 Logcat 显示一个整数值。这是 Logcat 的输出:

D/Test: 2131623845
Run Code Online (Sandbox Code Playgroud)

预期结果应该是:

D/Test: Something
Run Code Online (Sandbox Code Playgroud)

Gab*_*tti 5

只需使用以下方法stringResource

val test = stringResource(R.string.my_string)

Text("text",
  modifier = Modifier
    .fillMaxWidth()
    .clearAndSetSemantics {contentDescription = test}
)
Run Code Online (Sandbox Code Playgroud)