Ответ 1
id.xml обычно используется для объявления идентификатора, который вы используете для представлений в макетах.
вы можете использовать что-то вроде
<TextView android:id="@id/snack">
для данного xml.
Просто быстрый вопрос, что такое ids.xml, используемый для разработки приложения для Android? Я видел пример на веб-странице ресурсов Android, которая содержала:
<resources>
<item name="snack" type="id"/>
</resources>
Для чего это будет использоваться?
id.xml обычно используется для объявления идентификатора, который вы используете для представлений в макетах.
вы можете использовать что-то вроде
<TextView android:id="@id/snack">
для данного xml.
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 был указан до объявленного
Другое приложение для 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"...
...
избегает ошибки времени выполнения
При динамическом создании представлений предопределение идентификатора в ids.xml дает возможность ссылаться на вновь созданное представление. После использования метода setId(id)
вы можете получить доступ к представлению, как если бы он был определен в XML. Этот сообщение в блоге имеет приятный пример.