Возможный дубликат:
Разница между "@id/" и "@+id/" в Android
Когда вы создаете XML файл макета для приложений для Android, вы обычно объявляете идентификатор каждого элемента макета как:
@+id/elementID
Не так ли? Я думаю, что "+" означает, что этот идентификатор элемента только что создан, и поэтому вам нужен плюс, правильно?
Но что вы должны делать, когда ссылаетесь на элемент макета до его создания? Вы ссылаетесь на него с помощью "+", а затем создаете его без "+"? Проще говоря, правилен ли следующий код (в контейнере RelativeLayout)?
<ImageButton
android:id="@+id/helpButton"
android:layout_toLeftOf="@+id/moreButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageButton
android:id="@id/moreButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true" />
Я думаю, что "+" означает, что этот идентификатор элемента только что создан, и поэтому вам нужен плюс, правильно?
Да.
Вы ссылаетесь на него с помощью "+", а затем создаете его без "+"?
Да. Первое вхождение идентификатора получает +
. Второе и последующее появление может оставить его.
Проще говоря, правилен ли следующий код (в контейнере RelativeLayout)?
Ну, у ваших ImageButtons
отсутствуют изображения... :-)
При этом ваше использование знака +
кажется прекрасным.
RelativeLayout
на сайте разработчиков Android. Это действительно только вступает в игру с RelativeLayout
- другие контейнеры не используют ссылки на ресурсы виджета.