TabHost和TabWidget android:id

时间:2011-12-07 06:30:52

标签: android android-tabhost

我注意到在我的main.xml布局中,我正在创建一个Tab布局,“android:id”的声明与我用于按钮,textview等的声明不同。

例如:

<TabWidget android:id="@android:id/tabs" />

和按钮上的示例:

 <Button
    android:id="@+id/button_next" />

这两个声明的区别是什么?

3 个答案:

答案 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。第二个是我们用它来定义它仅仅是为了我们的应用目的。

第一个用于所有应用程序,但第二个仅用于该特定应用程序。

希望你明白这一点。 感谢。