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

Для чего используется ids.xml?

Просто быстрый вопрос, что такое ids.xml, используемый для разработки приложения для Android? Я видел пример на веб-странице ресурсов Android, которая содержала:

<resources>
  <item name="snack" type="id"/>
</resources>

Для чего это будет использоваться?

4b9b3361

Ответ 1

id.xml обычно используется для объявления идентификатора, который вы используете для представлений в макетах.

вы можете использовать что-то вроде

<TextView android:id="@id/snack">

для данного xml.

Ответ 2

ids.xml имеет следующее преимущество: все идентификаторы объявлены, поэтому компилятор может их распознать. Если что-то вроде этого:

<TextView
    android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignBelow="@id/text2"
    android:text="...."/>
<TextView
    android:id="@+id/text2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="...."/>

Может привести к компиляции ошибки, потому что text2 был указан до объявленного

Ответ 3

Другое приложение для id.xml относится к макетам и библиотечным проектам. Скажем, вы указываете общий список опций в макете библиотеки (диалога)

<CheckedTextView android:id="@+id/checked_option_one"...
<CheckedTextView android:id="@+id/checked_option_two"...
...

и обрабатывать эти представления в общем (диалоговом) фрагменте

optionOneCheck = (CheckedTextView)rootView.findViewById(R.id.checked_option_one);
optionTwoCheck = (CheckedTextView)rootView.findViewById(R.id.checked_option_two);

Если вы удалите какую-либо из деклараций вида из копии макета в основном проекте, вы получите исключение ошибки "нет такого поля" во время выполнения.

Компилятор не жалуется, но во время выполнения идентификатор на самом деле отсутствует/известен.

Объявление идентификаторов в id.xml и использование

<CheckedTextView android:id="@id/checked_option_one"...
...

избегает ошибки времени выполнения

Ответ 4

При динамическом создании представлений предопределение идентификатора в ids.xml дает возможность ссылаться на вновь созданное представление. После использования метода setId(id) вы можете получить доступ к представлению, как если бы он был определен в XML. Этот сообщение в блоге имеет приятный пример.