在我的项目中,我需要为视图设置始终不变的 ID。我的意思是在不同的应用程序构建之间保持不变的 ID。经过一番调查,我发现它可以通过使用来实现,values/public.xml
并且在该文件中声明的任何 id 在未来的构建中都不会改变。现在的问题是我无法在某些布局文件中定义视图的 ID。这是我的 layout.xml,其中包含一个带有 Id 的 ImageView,应将其添加到 public.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/menu_item_selector" >
<ImageView
android:id="@+id/index_row_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="@dimen/padding_small" />
<ImageView
android:id="@+id/index_row_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:src="@drawable/index_row_search" />
<TextView
android:id="@+id/index_row_caption"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/index_row_icon"
android:layout_toRightOf="@id/index_row_search"
android:gravity="right"
android:textAppearance="?android:attr/textAppearanceLarge" />
这是 public.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<public type="string" name="no_internet" id="0xAA0a0001" />
<public type="id" name="index_row_search" id="0xAA0b0015" />
</resources>
eclipse 在我添加了“index_row_search”的 id 的行上显示了一个错误,并说:
error: Public symbol id/index_row_search declared here is not defined!
但正如您在上面的布局文件中看到的,我有一个具有该 ID 的 ImageView。很奇怪上面一行的字符串id定义没有错误!
那么,我应该如何在 public.xml 中定义 View 的 Id 呢?