Все мы знаем это при генерации идентификатора для использования Android
@+id/foo
Android создает для нас запись в R.java как:
public static final class id {
public static final int foo=0x7f060005;
}
Что происходит, если существует коллизия имени в различных XML-файлах (скажем, в двух разметках)? +id механизм удостоверяется нам для перезаписи идентификационного названия, если другой все еще существует, но какой сгенерирован в R.java для нас?
Синтаксис @ + 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
Я думаю, что это просто использует идентификатор, если он уже генерируется. Я почти немного повторно повторно повторно повторно и никогда не столкнулся с проблемой.