2012-11-22 23 views
4

,比如我有鉴于其具有ID:Android的视野命名惯例

<ImageButton 
     android:id="@+id/imageButtonStart" 
     android:layout_width="100dp" 
     android:layout_height="100dp" /> 

不,我需要做私有字段名称相同,像这样:

private ImageButton imageButtonStart; 
+0

什么是xml id和class字段之间最好的名称约定? – testCoder

回答

3

虽然这是很好的做法为了使事物保持一致并为变量使用相同的名称,您不需要在XML中调用与您的类相同的类变量,因为您可以在代码中手动连接它们,例如:

ImageButton imageButtonNotStart = (ImageButton) this.findViewById(R.id.imageButtonStart); 

我个人偏好的格式是componentTypeDescriptiveName,比如imageButtonStart,但是在代码中我更喜欢更多的英文驱动的方法,比如startButton

通常我最终

<ImageButton 
     android:id="@+id/imageButtonStart" 
     android:layout_width="100dp" 
     android:layout_height="100dp" /> 

ImageButton startButton = (ImageButton) this.findViewById(R.id.imageButtonStart); 
5

我需要一个私有字段名称相同?

不,布局xml文件中的android:id不要求您在代码中使用相同名称的变量。

但你需要,如果你搜索ID

View randomName = findViewById(R.id.imageButtonStart); 

命名是很多个人喜好使用的确切名称。你应该选择明确定义名称代表的名称。你应该保持与你的命名方案一致。

这个名字应该有多长是有争议的,有些人会选择startBtn而不是imageButtonStart,因为它更短并且不会让你的代码烦人。如果按钮是ImageButton这一事实与您的代码无关,则无需命名为imageButton,只需button就足以使其意义明确。

有些人喜欢用最重要的区分标记最先的分层方案来使用名称。像Java & Android软件包名称com.google.market而不是market.google.com

而不是startButtonendButton,他们选择了buttonStartbuttonEnd。这背后的原因就是您可以更高效地使用自动完成功能。如果您不记得是否命名了结束按钮endButtonstopButton,则需要查看提案的整个列表。使用buttonXYZ方案,您可以开始输入button,因为您知道这是一个按钮,并且只会得到几个提议。

以上也是一个很好的例子,你应该保持一致。如果你命名一个按钮buttonStart而另一个clickablethingStop整个方案是无用的。不一致的命名需要更多时间才能找到正确的东西,并且如果选择了错误的东西,则可能导致错误。

另一件事是你用于名称的语言。如果你只为自己或者说这种语言的人编写代码,那么使用你自己的语言是完全可以的。但是,一旦你想与他人分享留在英语。即使不正确的英文命名比使用你根本不懂的语言中的名字更容易阅读和理解。

也有很多其他的命名约定在那里:WP:Naming conventions

例如安卓coding syle guide状态:

  • 非公开,非静态字段名称以米
  • 静态字段名称以s开头。
  • 其他字段以小写字母开头。
  • 公共静态final字段(常量)是ALL_CAPS_WITH_UNDERSCORES。

这将是private ImageButton mButtonStart;private static sSingletonThing;

该公约是唯一需要被使用,如果你想参与到Android源代码的方式,你可以写在任何风格的自己的应用程序。

,你真的应该遵循的是一般的Java类/方法/变量模式唯一的命名约定:(从上面维基百科的链接)

  • 类名:UpperCamelCase
  • 方法名称:lowerCamelCase
  • 变量名:lowerCamelCase
  • 常量:ALL_CAPS

它开始变得如果他们读了你的代码,并且你有小写的类名等等,让他人感到困惑。

+0

在这种情况下,班级领域的名称是什么? – testCoder

+0

@testCoder使用相同的名称是一个好方法。您在代码中使用的名称完全取决于您。但如果你使用不会让你感到困惑的名字,你可以帮助自己。例如'startButton'应该清楚它是布局中的开始按钮。 – zapl