petushok55
@petushok55
Обучаюсь на практике.

Java / Kotlin: почему так сделать нельзя?

Почему например я не могу дать пользователю ввести любое произвольное значение, а потом найти такое значение и дать расшифровку?
<resources> // это в values/strings.xml
    <string name="bomba">z2df21ffg231ffz</string>
</resources>

// это в MainActivity.kt

    var userInputValue = "bomba"
    var secretKey = R.string.userInputValue

Суть в чём?
Человек в поле вводит слово "bomba", и ему выдаётся секретный ключ "z2df21ffg231ffz"
  • Вопрос задан
  • 294 просмотра
Решения вопроса 1
@AndreiKud
Android developer.
Получить целочисленный идентификатор по строковому можно, но это непроизводительно, так что использовать с осторожностью.

UPD:
Не стоит так делать, покуда не уверен на сто процентов в том, что делаешь. Лучше пересмотреть подход к решению.

val resId = context.resources.getIdentifier("bomba", "string", packageName)
if (resId != 0) {
    val secretKey = context.getString(resId)
    // ...
}

Документация:
https://developer.android.com/reference/kotlin/and...
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
402d
@402d
начинал с бейсика на УКНЦ в 1988
HashMap<String, String> map = new HashMap<String, String>();
map.put("car", "drive");
map.put("boat", "swim");

map.get("car")
Ответ написан
@red-barbarian
потому что при сборке R.string.bomba становится целочисленной константой
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы