Android同名问题

时间:2014-09-17 19:03:44

标签: android android-layout

我正在创建我的第一个Android应用程序,到目前为止我有一些布局。在其中一个中,我创建了一个TextView并将其命名为“textViewCurrentUserName”。令我惊讶的是,当我创建一个新的布局时,插入一个新的TextView并尝试将其命名为“textViewCurrentUserName”我收到一个错误,指出该名称已经存在!这必须是一个错误吗?!?我的意思是,可以在相同的布局(xml)上“不重复”,但这些是完全不同的布局!

我在这里做错了吗?!?有没有解决方法?我不想保留一个完全愚蠢且难以阅读/理解的名称,例如“activity_UserDetails_TextViewCurrentUserName”和“activity_UserExport_TextViewCurrentUserName”

1 个答案:

答案 0 :(得分:2)

Android ID字段为每个UI元素创建唯一ID,并将它们存储在R文件中。由于片段/活动和布局相当分离,应用程序本身将不知道哪些布局和UI元素可用。因此,您必须明确说明您要查找的元素。如果指定的UI元素当前不可用(或者,元素可能为null),应用程序将抛出异​​常。

唯一的解决方法是制定命名约定。可以使用[fragment-name] _textViewCurrentUser来允许每个文本视图具有唯一ID。或者,您可以在每个UI元素前面放置一个小写的“t”作为文本视图:[fragment-name] _tCurrentUser。