我目前正在为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" />
Run Code Online (Sandbox Code Playgroud)
这是一个有效的定义,在我的Android模拟器上编译和工作正常,尽管 - 如你所见 - 我在驼峰案例语法中指定了id.
现在,Android示例始终使用小写和下划线.这只是一个命名约定,使用带有下划线的小写的id或者它可能会导致真实设备出现问题吗?
谢谢
Dan*_*Lew 84
如果您使用camel-case id名称,设备不会抱怨.对于我的第一个应用程序,我在camel-case中编写了所有id,因为我认为它在Java代码中看起来更好,并且它工作得很好.
不过,我正在慢慢改变我对camel-case的看法,因为你最终得到了两种不同的命名约定 - 例如:
// This must be undescored due to naming constrictions
setContentView(R.layout.my_long_layout_name);
// Now this looks a little out of place
findViewById(R.id.myLongSpecificId);
Run Code Online (Sandbox Code Playgroud)
我也对这里的标准感到好奇.谷歌的例子不一致; 有时他们使用全部小写,有时他们插入下划线,有时他们使用驼峰式.
Kir*_*rov 13
如果你看看android.R.id.*字段,你会注意到它们都是驼峰式的.所以如果android ids是用camel-case编写的,我想我们必须遵循这个惯例:)
小智 10
我认为他在谈论xml文件中的ID .
例如:
android:id="@+id/home_button"
Run Code Online (Sandbox Code Playgroud)
与
android:id="@+id/HomeButton"
Run Code Online (Sandbox Code Playgroud)
我没有在这个问题上找到任何约定或指南,所以我的项目中的开发人员都不明显地使用这两种方法,这是非常痛苦的:(
小智 6
我认为最好使用带下划线的所有小写字母。
看看这个(加上丹尼尔的回答)
Run Code Online (Sandbox Code Playgroud)// Camel Case TextView tvUserName = (TextView) findViewById(R.id.tvUserName);
// Small Caps and Underscores
TextView tvUserName = (TextView) findViewById(R.id.tv_user_name);
Run Code Online (Sandbox Code Playgroud)
根据我自己的经验,我倾向于对 xml 中的驼峰大小写约定感到有些困惑,因为当您将它链接到也使用驼峰大小写的 Java 时(因为它是标准),它看起来像是一个多普勒格。
| 归档时间: |
|
| 查看次数: |
39061 次 |
| 最近记录: |