Как установить текст кнопки с помощью getResources () в Kotlin? - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь определить кнопку с помощью getResources () и getIdentifier (), а затем установить текст для нее.Приведенный ниже код показывает, как я думал, что это должно работать (просто установив идентификатор и установив текст для объекта).

while (c < 65) {
    val resID = getResources().getIdentifier("S1", "id", getPackageName())
    resID.text = ""
}

Вместо этого я получаю сообщение об ошибке, где «.text» отображается красным.Как мне настроить его так, чтобы он работал так, как я ожидал.

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

на основе Документы getIdentifier возвращает Int, поэтому вам нужно findViewById и использовать результат getIdentifier для использования объекта

0 голосов
/ 21 ноября 2018

Расширения Kotlin не работают, если ссылка на int не исходит от R.id.

  1. Кнопка является представлением, затемВы можете получить к нему доступ, используя findViewById<Button>(buttonId)

  2. Если вы хотите получить идентификатор из ресурсов, просто getResources().getIdentifier("S1", "id", getPackageName())

В заключение,Вы видите, как это будет:

val buttonId = getResources().getIdentifier("S1", "id", getPackageName())
val button = findViewById<Button>(buttonId)
button.setText("")
0 голосов
/ 21 ноября 2018

resID - это целочисленный идентификатор Button "named" S1.Используйте его, чтобы найти Button:

val resID = resources.getIdentifier("S1", "id", getPackageName())
val button = findViewById<Button>(resID)
button.text = ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...