在Android中命名资源的最简单方法是什么?

时间:2011-01-21 10:38:42

标签: android android-layout

您对资源文件和ID使用哪些命名约定以及它们带来哪些好处?

例如,很容易得到像“activity_settings_location_text_label”这样的视图ID,但很快变得难以管理和混乱。我没有看到谷歌对此有任何指导,我是否想念它?

资源可以使用分层命名“分组”,但哪种结构最适合每种资源类型?字符串,颜色,尺寸,布局,包括等

我的命名目前相当特别,很明显我需要更好的结构(特别是我可以使用IDE的代码完成更容易找到ID)。

5 个答案:

答案 0 :(得分:12)

我想,最重要的是要记住,在多个布局中使用相同的ID是完全可以的。例如,@id/title_bar干净且通用且有效,并且比@id/settings_title_bar@id/home_screen_title_bar@id/search_title_bar等简单得多。

我还想将用于活动的布局命名为@layout/activity_home@layout/activity_search等。抽象和图标应采用与Android相同的标准,即@drawable/ic_btn_explode@drawable/ic_dialog_exploded

包含可能很棘手,但更简单但只包含少量元素并提供单一精确用途的内容往往最终为@layout/loading@layout/error_message

我仍在努力明智地命名字符串,但同样简短,简洁的名称使整个过程变得更加容易。

答案 1 :(得分:5)

所以4年后......这是我在为Android开发时坚持的'best-practices'列表。

Here is the section regarding resources

<小时/> 例如,在命名 string 资源时,这些是商品和坏商品

  

的strings.xml

     

使用类似名称空间的键命名字符串,但不是   害怕重复两个或多个键的值。语言是   复杂,所以命名空间是带来上下文和中断的必要条件   歧义。

     

<string name="network_error">Network error</string>
<string name="call_failed">Call failed</string>
<string name="map_failed">Map loading failed</string>
     

<string name="error.message.network">Network error</string>
<string name="error.message.call">Call failed</string>
<string name="error.message.map">Map loading failed</string>

<小时/> P.S 如果您使用的是Android Studio,那么重构就是完全不错的选择。它适用于几乎所有东西。不只是java代码。

只需将光标放在ID上,然后按 SHIFT + F6 重命名并自动重构。用于动态更改ID

答案 2 :(得分:2)

由于没有关于此的官方指南,我建议。

  • 保持一致。
  • 务实。
  • 尽可能尝试遵循Android源代码的样式和android.R

答案 3 :(得分:2)

我这样做:home_search_btn表示它是一个按钮,用于搜索某些内容,并将用于名为Home的活动

答案 4 :(得分:2)

我的方法一直运行得很好,应该将资源放在特定的XML文件中,例如,您通常会将colors.xml中的Color定义或strings.xml中的文本字符串放入资源文件中是路径的一部分,所以而不是:

R.string.home_button_text

我会:

R.string.home_button

我知道它是一个文字字符串,因为R.string部分。对我而言,这比将“text”放在id的末尾更具可读性。

然而,有时资源类型可能并不明显,在这种情况下,我会使id更具描述性。