Назначить идентификатор вида программно в Android

Я пытаюсь создать RelativeLayout с несколькими детьми программно. Чтобы правила, такие как RelativeLayout.RIGHT_OF работали, дочерние представления должны иметь правильные идентификаторы.

Однако, когда я пытаюсь назначить идентификатор, Android Studio помещает его как ошибку:

 view.setId(123); ERROR: Expected resource of type id 

Solutions Collecting From Web of "Назначить идентификатор вида программно в Android"

Найдено:

 view.setId(View.generateViewId()); 

У вас есть два варианта:

  1. Это не ошибка компилятора. Это просто ошибка проверки редактора, поскольку это не обычный способ справиться с идентификаторами. Так что компилируйте и запускайте без проблем.
  2. Используйте предварительно определенный список идентификаторов с типом «id» в качестве принятого ответа https://stackoverflow.com/a/8937477/1657333, поэтому редактор будет счастлив.

В Android Studio нажмите на лампочку на линии с этой «ошибкой». И выберите «Отключить проверку» в первом подменю.

Как говорили другие, вы не должны использовать целые числа непосредственно в этом случае. Есть очень редкие случаи, когда вам может понадобиться сделать это или вообще подавить предупреждения валидации. Если это так, вам нужно заглянуть в Линт . В Android Studio вы можете щелкнуть по красной лампочке в левой части строки кода. Это покажет контекстное меню со списком методов подавления.