Функция stringResource
Функция stringResource достаёт строку
по id ресурса, например R.string.app_name
из res/values/strings.xml.
Текст подхватывает локаль устройства,
если есть переводы в res/values-ru/strings.xml.
Для кода вне Compose используют
getString.
Синтаксис
val title = stringResource(R.string.app_name)
Параметры
| Параметр | Описание |
|---|---|
id |
Идентификатор строки, обычно
R.string. и имя из XML.
|
formatArgs |
Аргументы для плейсхолдеров %s
в строке ресурса. Необязательные.
|
Пример
Давайте выведем app_name через Text:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
import androidx.compose.ui.res.stringResource
import com.example.app.R
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text(text = stringResource(R.string.app_name))
}
}
}
На экране будет строка из app_name.
В учебном примере это может быть "abcde".
Пример
Давайте переключим между двумя строковыми ресурсами:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.res.stringResource
import com.example.app.R
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
var first by remember { mutableStateOf(true) }
val label = if (first) {
stringResource(R.string.app_name)
} else {
stringResource(R.string.brand)
}
Button(onClick = { first = !first }) {
Text(text = "abcde")
}
Text(text = label)
}
}
}
На экране текст сменится между значениями
app_name и brand из strings.xml.
Смотрите также
-
метод
getString,
которым читают строку вне Compose -
функция
colorResource,
которая читает цвет из res/values -
функция
painterResource,
которая грузит drawable в Compose -
тег
application,
где label ссылается на @string/app_name