2015-04-17 3 views
1

Я хочу знать, что это отличается от объявления переменной или идентификатор, какошибка ID в XML проверки Android

@android:id/ 
@+id/ 

Когда я установил @+id/tabhost на Tabhost, это продолжать давать мне ошибку, но если я устанавливаю @android:id/. он работает.

+1

возможно дубликат [Разница между «@ ид /» и «@ + id/"в Android] (http://stackoverflow.com/questions/5025910/difference-between-id-and-id-in-android) –

ответ

1

@+id создает новый идентификатор. Android не знает этот новый идентификатор, поэтому приложение выходит из строя.

@id использует существующий идентификатор из вашего приложения.

@android/id использует существующий идентификатор из фреймворка Android. Android уже знает этот идентификатор, он может получить доступ к соответствующему View, и приложение не будет разбиваться.

1

Идентификатор ресурса в Android относится к вашему пакету.

@ + id/name создаст идентификатор ресурса в вашем пакете с именем «имя» и присвоит ему уникальный идентификатор, вы также можете проверить его в файле R.java. В коде вы можете использовать как R.id.name.

@android: id/name это будет использовать идентификатор «имя» из пакета, указанного андроидом (в коде, который вы можете использовать как android.R.id.name.) @android: id/используется для получения id из существующих пакетов.

И tabhost указаны в андроида пакете, поэтому его дает ошибку @ + код/​​tabhost, так что вы должны использовать @android: идентификатор/

Смежные вопросы