Ответ 1
Нет, я не верю, что тебе что-то не хватает. Хотя эти поля называются по-разному, я понимаю, что они оба используются для идентификации/справочных ресурсов. Это специально означает GUI-элементы (представления) в случае android:id
и статических ресурсов в случае name
.
Чтобы углубиться, я считаю, что атрибут android:id
присваивается только представлениям и классам, которые расширяют представление. Это делается для того, чтобы представление можно было программным образом получить из вашего кода с помощью findViewById
:
Button myButton = (Button) findViewById(R.id.whatever_id_assigned_to_view)
Это отличается от ресурсов, таких как strings.xml или array.xml, которые идентифицируются просто name
, например, следующий пример того, что можно найти в файле strings.xml:
<string name="string_name">Text Resource Here</string>
и доступен с помощью...
getResources().getText(R.string.string_name)
Я предполагаю, что они разделены по организационным причинам. Таким образом, сгенерированный файл ресурсов Android (R.java) содержит идентификаторы, указанные для представлений в R.id, идентификаторы строк, содержащиеся в R.string, идентификаторы массивов в R.array и т.д.