Подтвердить что ты не робот

Что означает "@+ id"?

Я прочитал большую часть документации по Android, и мне еще предстоит найти какое-либо утверждение, в котором говорится, что означает префикс значения id из "@+ id". Я знаю, что "@string" и варианты этого значения, но не вариация с "+". Помимо предоставления мне ответа, можете ли вы показать мне, где в документах Android это документировано?

4b9b3361

Ответ 1

Знак плюса просто указывает, что идентификатор должен быть создан, если он не существует.

Общепринято использовать @+id/foo при определении нового представления в макете, а затем использовать @id/foo для ссылки на представление из другой части макета (например, в иерархии RelativeLayout) или R.id.foo на ссылку это из кода.


ОБНОВЛЕНИЕ: Документы находятся здесь: Объявление макета - Атрибуты - ID

Ответ 2

Это синтаксис для привязки элемента макета Android XML к вашему Java-коду. Поэтому, если я хочу отображать текст в TextView, я должен это сделать.

Шаг первый - укажите макет

<TextView
android:id="@+id/SaveResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SaveResult"
android:layout_x="16px"
android:layout_y="190px"
>
</TextView>

Затем в коде я использую @+ id, чтобы связать макет с переменной. Подумайте о знаке @+ в качестве внешнего ключа в базе данных.

TextView lblSaveResult = (TextView)findViewById(R.id.SaveResult);

Теперь он готов к использованию. Когда я назначаю текст, он использует @+ id, чтобы увидеть, куда его поместить, а также цвет, размер и т.д.

lblSaveResult.setText("This text is now on the screen");

Извините, но я не знаю, где документация для этого...

Ответ 3

Знак at (@) требуется, когда вы ссылаетесь на любой объект ресурса из XML. За ним следует тип ресурса (id в этом случае).

Знак плюса (+) перед типом ресурса нужен только тогда, когда вы впервые определяете идентификатор ресурса. При компиляции приложения инструменты SDK используют имя ID для создания нового идентификатора ресурса в файле проекта gen/R.java, который относится к элементу пользовательского интерфейса. Если идентификатор ресурса объявлен один раз таким образом, другим ссылкам на идентификатор не нужен знак плюса. Использование знака "плюс" необходимо только при указании нового идентификатора ресурса и не требуемого для конкретных ресурсов, таких как строки или макеты.

Ответ 4

Знак плюса означает, что вы создаете новый идентификатор, который не существует. например, "@+ id/xyz". Если вы пишете "@id/xyz", это означает, что вы ссылаетесь на представление из другой части макета.