Идентификационный механизм коллизии Android для R.java

Все мы знаем это при генерации идентификатора для использования Android

@+id/foo

Android создает для нас запись в R.java как:

 public static final class id {
        public static final int foo=0x7f060005;
 }

Что происходит, если существует коллизия имени в различных XML-файлах (скажем, в двух разметках)? +id механизм удостоверяется нам для перезаписи идентификационного названия, если другой все еще существует, но какой сгенерирован в R.java для нас?

16
задан dgraziotin 21 January 2010 в 17:46
поделиться

2 ответа

Синтаксис @ + ID / FOO добавят, если идентификатор не существует или использует существующий идентификатор.
Когда вы findViewByID, он будет работать по мнению, на котором вы называете метод.

Итак, если у вас появятся представления, ваш идентификатор будет уникальным для каждого представления. например View1 -> View2 Оба есть Foo. View1.findviewbyyid (r.id.foo) будет отличаться от View2.findviewbyId (r.id.foo)

редактирование: я думаю, главное упомянуть, что две макеты могут имел тот же идентификатор. Для получения дополнительной информации о ограничении идентификатора: http://d.android.com/guide/topics/ui/declaring-layout.html

25
ответ дан 30 November 2019 в 17:39
поделиться

Я думаю, что это просто использует идентификатор, если он уже генерируется. Я почти немного повторно повторно повторно повторно и никогда не столкнулся с проблемой.

2
ответ дан 30 November 2019 в 17:39
поделиться
Другие вопросы по тегам:

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