Как получить доступ к значениям из strings.xml

Как я могу получить доступ к значениям из strings.xml в Android Kotlin?

class MainActivity : AppCompatActivity(), View.OnClickListener {
    override fun onClick(p0: View?) {
        getToastCalled("")
        TODO("not implemented")
    }

    private fun getToastCalled(message: String) {
        TODO("not implemented")
    }

    var btn: Button? = null;

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        var tv_name=findViewById(R.id.tv) as TextView
        btn=findViewById(R.id.button) as Button
        tv_name.setText(KtTest().name);
        (btn as Button).setOnClickListener([email protected])
    }
}

Ответы

Ответ 1

Доступ к строковым значениям в Kotlin работает точно так же, как и в Java, только с синтаксисом Kotlin:

val string: String = getString(R.string.your_string_id)

Ответ 2

Если вам нужно получить доступ ко всему массиву:

val data= resources.getStringArray(R.array.array_id)

Ответ 3

Если вы хотите получить доступ к строке из контекста или действия (например, класса модели данных), вы можете достичь этого:

Resources.getSystem().getString(R.string.pay)

РЕДАКТИРОВАТЬ: Это только для общесистемных ресурсов, а не ресурсов приложений

Ответ 4

Используйте формат - R.string.string_name

Ссылка на это явно, например:

R.string.loadingText,

Учитывая, что ваш XML файл имеет следующее как часть ресурсов:

<string name="loadingText">The actual text to be displayed</string>

Ответ 5

Я решил эту проблему с помощью File> Invalidate Caches/Restart... в IDE, после чего я смог получить доступ к ссылкам представлений.

GL