0

在我当前的项目中,我有三个不同的EditText小部件,采用三种不同的Activity布局,用于输入年份。我从创建 UI 开始,最初有

<EditText android:id="@+id/year_text" ... other attributes ... />

在我的每个 XML 布局文件中。由于这个名称冲突,我从来没有遇到过任何编译器错误,我只是意识到这可能是一个问题,因为我开始为每个Activity. 所以我的第一个问题是,这种名称冲突是否会导致未来出现问题?

据我了解,+告诉布局解析器为R.java文件中的命名 ID 创建一个新值。我还可以使用@id/name语法引用以前给定的 ID。如果我+从除一个之外的所有EditTexts 中删除 会发生什么?这解决了为R类中的标识符分配新值的问题。但是在不同的布局中重复使用相同的 ID 会导致任何问题吗?(回想一下,名称冲突发生在不同的 XML 布局文件中,而不是在同一个布局中。)

现在,我已经为我的所有小部件 ID 创建了长名称。例如:

<EditText android:id="@+id/details_year_text" ... other attributes ... />
<EditText android:id="@+id/year_filter_year_text" ... other attributes ... />
<EditText android:id="@+id/year_and_number_filter_year_text" ... other attributes ... />

前缀跟在每个文件所在的 XML 布局文件的名称之后EditText。这有点麻烦,尤其是在使用 NetBeans 中的自动完成功能时。(是的,我使用的是 NetBeans 而不是 Eclipse。=p)。如果我确实需要为每个EditText小部件使用唯一的名称,那么将它们分成命名空间会很方便。XML 布局是否支持任何可以创建内部类的语法,这些内部类R.id可以用作我的 ID 的命名空间?

最后,我知道这是一个非常小的项目。我可以想象有些 Android 应用程序的小部件比我使用的要多得多。如果有的话,在项目的 XML 布局中命名和组织 ID 的标准做法是什么?

4

1 回答 1

1

对于您的第一个问题,android 为您的资源 xml 文件提供了 id 标签,这意味着您可以先声明您的 id(类似于 string ),以下信息可能对您有所帮助:http: //developer.android.com/guide/主题/资源/more-resources.html#Id

于 2012-10-07T19:00:48.613 回答