Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android资源ID_Android_Resources_Unique - Fatal编程技术网

Android资源ID

Android资源ID,android,resources,unique,Android,Resources,Unique,XML布局中视图的资源ID在所有布局中都必须是唯一的吗 例如,我正在开发一个小的配方管理器应用程序。我有一个用于添加新配料的布局文件。在这个布局中,我有一个EditText用于我想称之为“edt_名称”的成分。但恐怕这个名字太笼统了;e、 在其他XML布局文件中,我可能还有一个用于菜谱名称、烹饪过程名称等的EditText 但是,我也不想让标签变得过于复杂。如果可以的话,我想避免将上述编辑文本称为“edt\u名称\u新成分” 我很好奇开发人员通常是如何组织他们的资源的。据我所知,Android不

XML布局中视图的资源ID在所有布局中都必须是唯一的吗

例如,我正在开发一个小的配方管理器应用程序。我有一个用于添加新配料的布局文件。在这个布局中,我有一个EditText用于我想称之为“edt_名称”的成分。但恐怕这个名字太笼统了;e、 在其他XML布局文件中,我可能还有一个用于菜谱名称、烹饪过程名称等的EditText

但是,我也不想让标签变得过于复杂。如果可以的话,我想避免将上述编辑文本称为“edt\u名称\u新成分”


我很好奇开发人员通常是如何组织他们的资源的。据我所知,Android不支持资源的子目录,因此命名方案可能会变得非常混乱。

不,资源ID在不同的xml布局中不应该是唯一的,但在特定的xml文件中必须是唯一的

资源ID在包中具有名称空间。当您访问资源(例如,在XML中)时,包名称将隐式设置为当前名称。您可以将其他资源文件放在不同的包中,并引用代码或XML中的资源文件(这就是访问SDK附带的平台资源的方式)

类似地,在代码中,您可以访问不同包的
R
类并使用其资源,但同一包中的所有资源都必须具有唯一的名称


更多信息可以在文档中找到。

但是当我访问java文件中的R.id.(view\u id)时,我会从所有视图中获得一个id列表?我只是尝试用相同的名称命名两个不同XML布局文件中的两个EditBox。我没有收到错误消息,但是当我使用R.id.(view\u id)时,我只得到一个view\u id,我不知道id指的是哪个EditText!你是对的。。。但是Android从您在活动中使用setContentView方法设置的xml布局中,从列表中获得的所有视图id中选择视图id。。。这就是为什么你没有得到任何错误。尝试更改两个xml中edittext的Id。。。然后你就可以更好地了解正在发生的事情。我刚刚测试了你所说的,你是对的,成功。R.id.(view_id)调出所有布局中的所有视图,但如果在当前使用的布局中找不到该视图,程序将崩溃。因此,如果在不同的布局文件中有两个id相同的视图,它将自动使用当前布局文件中的视图。@xiongtx在使用RelativeLayout时,在不同的XML布局文件中使用相同的id可能会导致问题,因为同一id可能在同一棵树中出现两次。看到这个答案,我想Andoid只是将名称(字符串)转换为id(整数)以提高性能。因此,相同的名称将编译为相同的数字。就这样。稍后,这两个资源将具有相同的数字id,但如果它们存在于不同的环境中,Android并不在意。在当前视图树中搜索findViewById。感谢链接。我将应用程序构建为一个项目,所以我只有一个“R”类。我想这意味着所有布局文件中的所有视图都必须具有唯一的id?