Идентификаторы ресурсов в Android специфичны для пакета (это хорошо, иначе у вас будет много конфликтов, если ваше приложение имеет дело с несколькими пакетами одновременно).
@+id/list
создаст идентификатор ресурса в вашем приложении (= ваш пакет) с именем «list» и присвоит ему уникальный идентификатор. В коде это будет R.id.list
.
@android:id/list
будет использовать идентификационный «список» из пакета android (который в коде будет android.R.id.list
.
EDIT: нужно добавить исправления. Дэвид Хедлунд указал: правильная ссылка будет @android:id/list
. Кроме того, +
указывает, что вы определяете новый идентификатор - вам, очевидно, не нужно, когда вы ссылаетесь на что-то, что было определенных в Android API.
в android,
В XML: @ [package:] layout / filename
blockquote>, как
android:id="@+id/android:list"
Это является стандартным способом ссылаться на представление списка при ссылке на listFragment или listActivity
, поэтому имя файла - это android: list - ссылка на ListView.
перейти к
res/values/ids.xml
вы найдете
<item type="id" name="list" />
ListView - это группа представлений, которая отображает список прокручиваемых элементов. Элементы списка автоматически вставляются в список с помощью адаптера, который извлекает контент из источника, такого как запрос массива или базы данных, и преобразует результат каждого элемента в представление, которое помещено в список.
Я думаю, что код примера, который вы опубликовали, имеет опечатку, поэтому он должен быть @android:id/list
(без +). Из ListActivity javadoc :
ваш собственный просмотр ДОЛЖЕН содержать объект ListView с идентификатором «@android: id / list»
blockquote>
@android:id/list
специфичен для ListActivity, поэтому вам не нужно, если вы добавляете ListView в любой другой вид Activity. Вы должны расширить ListActivity, если хотите, чтобы пользователь сделал больше, чем просмотр списка. Например, вы можете переопределитьListActivity.onListItemClick
, чтобы отвечать на клики на элементе в списке.Точно так же
@id/android:empty
(опять же, без +) является особым случаем для ListActivity. Это позволяет указать альтернативный вид, который должен отображаться, когда ваш список пуст. Этот вид не будет отображаться при заполнении списка.