我目前正在为Android编写应用程序 . 现在我发现你不能将资源对象放在drawable文件夹中,并将其命名为“myTestImage.jpg” . 这将给你一个编译器错误,因为不允许使用camel case语法,因此你必须像“my_test_image.jpg”那样重命名它 .
但是你在XML文件中定义的id呢?假设您有以下定义
<TextView android:id="@+id/myTextViewFirstname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Firstname" />
这是一个有效的定义,在我的Android模拟器上编译和工作正常,尽管 - 如你所见 - 我在驼峰案例语法中指定了id .
现在,Android示例始终使用小写和下划线 . 这只是一个命名约定,使用带有下划线的小写的id或者它可能会导致真实设备出现问题吗?
谢谢
9 回答
首先,没有一定的标准来定义哪一个更有效,但我有几个理由证明这一点 . 我的想法是合理的,使用camel-case约定将XML id和java变量保持在完全相同的名称中 .
1-)通过在XML和Java端搜索项目很容易到达变量 .
2-)butterKnife库定义
以这种方式保持更合适 .
如果您使用camel-case id名称,设备不会抱怨 . 对于我的第一个应用程序,我在camel-case中编写了所有id,因为我认为它在Java代码中看起来更好,并且它工作得很好 .
不过,我正在慢慢改变我对camel-case的看法,因为你最终得到了两种不同的命名约定 - 例如:
我也对这里的标准感到好奇 . 谷歌的例子不一致;有时他们使用全部小写,有时他们插入下划线,有时他们使用驼峰式 .
如果你看一下
android.R.id.*
字段,你会发现它们都是驼峰式的 . 所以如果android ids是用camel-case编写的,我想我们必须遵循这个惯例:)我认为他正在讨论
xml
文件中的ID .例如:
与
我没有在这个问题上找到任何约定或指南,所以我的项目中的开发人员都不明显地使用这两种方法,这非常痛苦:(
我认为如果我们使用带下划线的所有小写字母是好的 .
看看这个(添加丹尼尔回答的内容)
根据我自己的经验,我倾向于对xml中的camel case约定感到有些困惑,因为当你将它链接到也使用camel case的Java时(因为它是标准的)它看起来像一个doppleganger .
如果您查看一些Googles应用程序示例,例如:
https://github.com/google/iosched
他们使用下划线 . 所以....也许这就是我们应该怎么做的?
xml文件名(在drawable文件夹中使用的文件名)必须全部用小写字母_分隔,因为xml不支持大写文件名 .
如果Android的编译器真正做你所说的限制驼峰的情况(这似乎很奇怪),那么你应该坚持已 Build 的约定 .
反对粮食只会造成不必要的混乱 . 尽可能在所有地方保持一致 .
我认为如果我们在xml文件中使用下划线约定和类字段的camel case约定,那么它将为每个开发人员提供更好的可见性,以区分xml id和类字段 .