我注意到在我的main.xml布局中,我正在创建一个Tab布局,“android:id”的声明与我用于按钮,textview等的声明不同。
例如:
<TabWidget android:id="@android:id/tabs" />
和按钮上的示例:
<Button
android:id="@+id/button_next" />
这两个声明的区别是什么?
答案 0 :(得分:2)
当您分配如下ID时:
<Button
android:id="@+id/button_next" />
您正在R.java
文件的项目资源中创建新的资源ID。
当您指定带有@android:id
前缀的ID时,您将引用android
命名空间中存在的资源。
即:
<TabWidget android:id="@android:id/tabs" />
在这种情况下,您将标识@android:id/tabs
分配给TabWidget
,因为它允许您的TabWidget
实例从android命名空间中的现有资源继承。
有关不同ID分配的详情,请参阅this page(滚动至属性部分)
答案 1 :(得分:1)
android框架使用某些id。像tabwidget,list等一样。当活动启动时,它通过搜索这些id的布局来找到所需的元素。
但是当您为自己的应用目的设置和识别视图时,您只能使用id / yourid。 这只会由您的应用程序代码使用。
答案 2 :(得分:1)
blessenm是对的。当我们加载应用程序时,它将搜索由android框架创建的默认id。第二个是我们用它来定义它仅仅是为了我们的应用目的。
第一个用于所有应用程序,但第二个仅用于该特定应用程序。
希望你明白这一点。 感谢。