Java 在XML文件中引用支持库中的资源ID

Java 在XML文件中引用支持库中的资源ID,java,android,xml,android-support-library,Java,Android,Xml,Android Support Library,导入使用v7 supoort库中创建的资源id的xml文件 导入的xml文件包含以下id,但它不使用“@id+,”就好像它是刚刚创建的一样: android:id=“@id/activity\u chooser\u view\u content” 在以下链接中,它显示v7 appCompat支持库中已创建id(注释部分结束后的第三行): 为了让Android或Android Studio找到id,我需要做什么 我得到以下错误: Error:(2, 51) No resource found t

导入使用v7 supoort库中创建的资源id的xml文件

导入的xml文件包含以下id,但它不使用“@id+,”就好像它是刚刚创建的一样:

android:id=“@id/activity\u chooser\u view\u content”

在以下链接中,它显示v7 appCompat支持库中已创建id(注释部分结束后的第三行):

为了让Android或Android Studio找到id,我需要做什么

我得到以下错误:

Error:(2, 51) No resource found that matches the given name (at 'id' with value '@id/activity_chooser_view_content').

Error:(8, 64) No resource found that matches the given name (at 'id' with value '@id/image').
我正在编译以下参考图书馆:

compile 'com.android.support:support-annotations:23.1.0'
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'


compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:support-v13:25.0.0'

为了从SDK引用ID,您需要
@android:ID/

或者,您的错误意味着,由于您拥有
@id
而不是
@+id
,因此您试图从自己的应用程序资源中引用现有id,而不是创建新id

或者你应该试试类似的东西

View rootView = LayoutInflater.from(getContext()).inflate(android.R.layout.abc_activity_chooser_view);
View x = rootView.findViewById(android.R.id.<name>);
View rootView=LayoutInflater.from(getContext()).inflate(android.R.layout.abc\u activity\u chooser\u视图);
视图x=rootView.findviewbyd(android.R.id.);

值得一提的是

内部布局不打算直接使用,随时可能更改,这可能会在将来破坏您的代码。更好的解决方案是创建自己的布局或使用具有类似功能的公共框架小部件。使用内部小部件的风险由您自己承担


这在支持库中。不是SDK。我不知道他为什么要在自定义布局中使用引用ID。我只是在想。。。不确定,我正在导入Chromium布局,我几乎有100个布局id没有找到。正如您在这里所说:“为了从SDK中引用ID,您需要@android:ID/”这就是所做的。例如:android:id=“@id/expand\u activities\u button”但找不到它们。我可以添加加号,但这不意味着它不会将特征与id一起继承吗?这不是要做的
@android:id
@id
不同,因为您只是将id分配给布局,您可以只执行
android:id=“@+id/activity\u chooser\u view\u content
您自己。
+
将把ID添加到R文件中。如果您不想,也不需要使用支持库ID。它们只用于引用。
View rootView = LayoutInflater.from(getContext()).inflate(android.R.layout.abc_activity_chooser_view);
View x = rootView.findViewById(android.R.id.<name>);