Android中ID的命名约定

时间:2013-02-16 11:24:47

标签: android naming-conventions

Android 2.3.3。

我有一个关于在Android中命名ID的问题。

假设我在Activity1中有两个按钮(保存和取消)。我将它们(ID)命名为btnSave和btnCancel。现在我有了Activity2,我也在其中保存和取消按钮。两者都具有相同的功能。如果我将ID设为btnSave和btnCancel会发生什么。

编译时我会遇到问题吗?当我按下时,R.id。和ctrl + space,我会得到两个btnSave和btnCancel(s)可供选择吗?

最重要的是,如果我应该为什么以不同的方式命名呢?

4 个答案:

答案 0 :(得分:4)

如果只能轻松编写代码,那么

您可以尝试类似(使用带有前缀或后缀的活动或布局xml文件编写按钮名称)

button_save_<activity_or_layout_name>
button_cancel_<activity_or_layout_name>

但是在运行时,您的按钮ID始终由布局视图引用。您将其添加到活动setContentView()中。

更新:

假设在Activity2中你正在使用id为Activity1布局的按钮,那么你可以得到 NullPointerException ,因为你的按钮在Current Activity2中没有被引用。 (因为您的Activity2具有不同的布局)。

答案 1 :(得分:2)

在我看来,当你命名ID时,你应该首先写下将使用它们的活动的名称,然后是小部件的首字母,最后是它的功能是什么。 loginBSave,loginBCancel,activity2BSave,activity2BCancel 无论如何,它完全取决于你的程序员,以一种你可以区别于彼此的方式来命名它们

例如:

<activity_or_layout_name>_button_save
<activity_or_layout_name>_button_cancel

答案 2 :(得分:1)

在多个活动之间共享相同的ID并不重要,事实上,您甚至可以在同一个活动中多次使用相同的ID而没有任何问题。在这种情况下,对getViewById()的调用将只返回当同一层次结构中有许多具有相同ID的视图时将找到的第一个View。

当相同的布局需要从其XML文件多次膨胀时,通常会发生这种情况。如果您需要查找共享相同ID的所有View,则必须在每次查找后依次使用setId()更改每个View的ID,或者给出不同的起点。

答案 3 :(得分:0)

对于特定于布局的元素,我使用前缀和布局名称的第一个字母。因此,如果我有名为show_task_layout.xml的布局,则其元素将具有名称stl_button_ok等。

对于可能复制或出现在许多活动中的特定元素,我更喜欢使用一个没有前缀的名称。但是如果在每个布局中都遵循这种方式,那么调试将是一个令人头疼的问题。如果你找不到id

的元素