2013-06-22 2 views
5

Я использую функцию перетаскивания, чтобы добавить линейную компоновку в свою деятельность. , когда я проверяю action_main.xml, есть созданный компонент, но нет «android: id» Я не могу вручную добавить id, потому что для этого макета в R.java нет идентификатора. как его решить?Настройка android: id для компонента линейного компоновки

ответ

6

Если вы добавите андроид: id = "@ + id/YOUR_ID" в свой XML, ваша среда IDE (я предполагаю затмение) перекомпилит R.java и вы сможете использовать R.id.YOUR_ID в вашей деятельности.

+0

oh mann. Я этого никогда не знал. спасибо –

1

Вам не нужно использовать R.id для программирования id программно. Вы можете использовать любое положительное число ID:

myNewLayout.setId(newLayoutIndex); 

Согласно Посмотреть документации

Идентификатор не должен быть уникальным в иерархии этого вида. Идентификатор должен быть положительным.

+0

Согласен, но если вы определяете представление в xml (он упоминает activity_main.xml), лучше его установить. Также стоит отметить, что программный идентификатор id имеет потенциал создания дубликатов идентификаторов, поэтому перед этим нужно продумать. – Flynn81

+0

Если вы хотите использовать только один вид - agrred. Но что делать, если вам нужно создавать и работать со многими представлениями программно? – Dimmerg