<ImageButton
android:id="@+id/imageButtonStart"
android:layout_width="100dp"
android:layout_height="100dp" />
我需要创建一个私有字段并使用相同的名称,像这样:
private ImageButton imageButtonStart;
<ImageButton
android:id="@+id/imageButtonStart"
android:layout_width="100dp"
android:layout_height="100dp" />
我需要创建一个私有字段并使用相同的名称,像这样:
private ImageButton imageButtonStart;
我需要使用与变量同名的私有字段吗?
不需要,在布局xml文件中的android:id
不需要您在代码中具有相同名称的变量。
但是,如果要搜索id,则需要使用完全相同的名称。
View randomName = findViewById(R.id.imageButtonStart);
命名很大程度上取决于个人喜好。你应该选择能清晰定义被命名事物代表含义的名称,并且在命名方案中要保持一致。
关于名称长度的问题有争议,有些人会选择 startBtn
而不是 imageButtonStart
,因为它更短,在代码中更少令人讨厌。如果按钮是一个 ImageButton
没有意义对你的代码影响,你就不需要将其命名为 imageButton
,只需要将其命名为 button
就足以使其含义清晰。
有些人喜欢使用分层结构的名称,其中最重要的区分者排在前面。比如Java和Android的包名 com.google.market
而不是 market.google.com
。
他们选择了buttonStart
和buttonEnd
而不是startButton
和endButton
。这样做的原因在于,您可以更有效地使用自动完成功能。如果您无法记住您是否将结束按钮命名为endButton
还是stopButton
,则需要查看整个建议列表。使用buttonXYZ
方案,您可以开始输入button
,因为您知道它是一个按钮,并且只会得到少量建议。
上述也是保持一致性的好例子。如果您将一个按钮命名为buttonStart
,而将另一个命名为clickablethingStop
,则整个方案就毫无用处了。不一致的命名需要更长时间才能找到正确的内容,并且如果选择了错误的内容可能会导致错误。
另外一件事就是您用于命名的语言。如果您仅为自己或讲同一种语言的人编写代码,则使用您自己的语言是完全可以的。但是,一旦您想与其他人分享代码,请使用英语。即使是错误的英语命名也比您完全不理解的语言的命名更容易阅读和理解。
还有许多其他的命名约定:WP:命名约定
例如,Android 编码样式指南 指出:
它将是 private ImageButton mButtonStart;
或 private static sSingletonThing;
顺便说一下,只有当您想要贡献给 Android 源代码时才需要使用该约定,您可以按任何样式编写自己的应用程序。
您真正需要遵循的唯一命名约定是一般的 Java 类/方法/变量模式:(来自上面维基百科链接)
如果其他人阅读您的代码并且您使用小写类名称等,那么情况会变得非常混乱。
startButton
应该清楚地表明它是您布局中的启动按钮。 - zapl尽管保持一致并使用相同名称的变量是一个好的实践,但你不需要将类变量与XML中的id命名为相同的名称,因为你可以通过代码手动将它们连接起来,例如:
ImageButton imageButtonNotStart = (ImageButton) this.findViewById(R.id.imageButtonStart);
我个人偏好使用格式为componentTypeDescriptiveName
的方式,如在XML中使用imageButtonStart
,但在代码中我更喜欢一种更注重英文的方式,比如startButton
。
通常情况下,我会以这种方式结束。
<ImageButton
android:id="@+id/imageButtonStart"
android:layout_width="100dp"
android:layout_height="100dp" />
ImageButton startButton = (ImageButton) this.findViewById(R.id.imageButtonStart);