Android XML ID最佳实践

5
假设我有一个活动,我从一个 XML 文件中设置内容视图。
假设我在 Java 代码中有一个按钮,acceptButton。
acceptButton =(Button)findViewById(R.id.acceptBtn);

在上面的代码中,Java名称和XML id是不同的。是否有命名小部件的“最佳实践”或标准?例如,XML id也应该称为acceptButton,而不是acceptBtn吗?这似乎微不足道,但当其他人给Android名称和XML id完全不同的名称时,这让我很恼火。

它们不必完全相同,但它们应该是相关的。 - JoxTraex
4个回答

4

谷歌并没有关于在xml文件中命名资源的建议。另外,在查看贡献者代码风格指南时,也没有提到这一点,因此最好是在SDK中查看,您会发现谷歌在标识符命名上并不一致。

在整个SDK中,您可以找到以下惯例:

mHeaderText = (TextView) view.findViewById(R.id.headerText);

mHeaderText = (TextView) view.findViewById(R.id.header_text);

mHeaderText = (TextView) view.findViewById(R.id.HeaderText);

我建议的是在每个项目中保持一致性。决定一个命名约定并在整个项目中使用它。

为什么他们用小写的 m 开始变量名?为什么不用 headerText - iTurki
2
请参阅http://source.android.com/source/code-style.html#follow-field-naming-conventions。前缀“m”表示变量是成员字段。 - biegleux
谢谢。这个问题困扰了我一段时间。 - iTurki

0
我会更紧密地解释它与Java约定:“AcceptBtn”指向一个类,“acceptBtn”指向一个实例,“accept_btn”-其他。 “id”更像是一个实例,绝对不是一个类。至少其他人。但我更喜欢它作为一个实例。
R.id.AcceptBtn // As a class.
R.id.acceptBtn // As an instance.
R.id.accept_btn // Other cases.

根据Steve McConnel的《代码大全》,acceptBtn更好地被写成acceptButton。这样更易读,更少写,但我们更经常阅读代码而不是编写它。因此,可读性强的代码可以节省更多时间。

0

Java 名称和 XML ID 不一定要相同。我认为 Google 没有提供任何这样的命名标准。但是,如果它们都相同,这似乎是一个非常好的实践。通过保持它们相同,当存在多个控件时,我们可以仅通过名称轻松地识别控件。

另一种方法是定义 Java 名称和 XML ID 的命名风格,并对所有控件遵循相同的风格。但这取决于开发人员或项目。


0

正如Nirav所说,它从来不是强制性的,但在id和变量具有相同名称方面是一个好习惯,我总是这样做。这可以节省您的时间,因为您无需在xml中为Id记住不同的名称,在代码中为变量记住不同的名称,并且在定义它后,您只需将其复制并粘贴到代码中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接