gpt4 book ai didi

android - Android:如何在Kotlin中将string.xml中的R.string值设置为全局常量?

转载 作者:行者123 更新时间:2023-12-02 13:18:41 25 4
gpt4 key购买 nike

我是Kotlin的新手,所以也许我缺少明显的东西,但我无法通过Google找到答案。

如何将Kotlin常数的值设置为strings.xml资源值?我已经尝试过像下面这样,但是会引发以下错误:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference



这是我的代码,第一个val声明失败:
class MainActivity: AppCompatActivity() {

private val STATUS_PREP = getString(R.string.status_prep) //THIS LINE FAILS
private val STATUS_FIGHT = "fight" //res.getString(R.string.status_fight)
private val STATUS_REST = "rest" //res.getString(R.string.status_rest)
private val STATUS_COMPLETE = "complete" //res.getString(R.string.status_complete)
private val STATUS_PAUSED = "paused" //res.getString(R.string.status_paused)

最佳答案

改为这样做。

class MainActivity : AppCompatActivity() {

private STATUS_PREP_2: String by lazy {
getString(R.string.status_prep_2)
}

private lateint var STATUS_PREP: String

override fun onCreate(savedInstanceState: Bundle?) {
// snip
initString()
}

private fun initString() {
STATUS_PREP = getString(R.string.status_prep)
// Init all your string here
}
}

之所以会出现异常,是因为在创建 Activity 实例后未立即初始化 context

关于android - Android:如何在Kotlin中将string.xml中的R.string值设置为全局常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61145829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com