Android 什么时候需要安卓前缀?
我知道在Android中,我在res/目录中放置的任何内容都将被编译到相应的R类中:Android 什么时候需要安卓前缀?,android,Android,我知道在Android中,我在res/目录中放置的任何内容都将被编译到相应的R类中: res/drawable -> R.drawable res/layout -> R.layout 等等 我知道我也可以使用android软件包中的项目: android.R.id.text1 如果我想使用xml格式的资源,我可以执行以下操作: <TextView ... android:text="@string/my_text" /> <TextVie
res/drawable -> R.drawable
res/layout -> R.layout
等等
我知道我也可以使用android软件包中的项目:
android.R.id.text1
如果我想使用xml格式的资源,我可以执行以下操作:
<TextView
...
android:text="@string/my_text" />
<TextView
...
android:id="@android:id/text1" />
如果我想使用android软件包中的某些东西,我可以执行以下操作:
<TextView
...
android:text="@string/my_text" />
<TextView
...
android:id="@android:id/text1" />
这种情况似乎并不总是如此,我无法找出区别。
使用AppCompat主题时:
<TextView
android:theme="@style/Theme.AppCompat.Light"
android:textAppearance="@style/TextAppearance.AppCompat.Subhead" />
而不是
<TextView
android:theme="@android:style/Theme.AppCompat.Light"
android:textAppearance="@android:style/TextAppearance.AppCompat.Subhead" />
Theme.AppCompat.Light和TextAppAppAppCompat.Subhead未在我的res/目录中的任何位置定义。它们是support.v7.appcompat支持库的一部分。在这种情况下,为什么我不需要使用android前缀?因为它们是应用程序的一部分,而不是框架的一部分。不是你不需要它;如果您尝试它,您将得到一个编译错误
appcompat-v7
恰好是一个库这一事实无关紧要。这与您自己输入代码没有什么不同。应用程序中的任何内容都不使用android
前缀。作为框架一部分的资源-因此在设备上,而不是在你的应用程序中-获得android
前缀。,因为它们是你的应用程序的一部分,而不是框架的一部分。不是你不需要它;如果您尝试它,您将得到一个编译错误
appcompat-v7
恰好是一个库这一事实无关紧要。这与您自己输入代码没有什么不同。应用程序中的任何内容都不使用android
前缀。作为框架一部分的资源-因此在设备上,而不是在应用程序中-获取android
前缀。因此支持库中没有任何内容使用前缀。只有属于目标sdk的东西?@Dismissile:我会将其表述为“支持库中定义的任何东西都不使用前缀”。正如您的代码可以使用框架资源一样,支持库也可以使用框架资源,因此支持库中没有任何东西使用前缀。只有属于目标sdk的东西?@Dismissile:我会将其表述为“支持库中定义的任何东西都不使用前缀”。正如您的代码可以使用框架资源一样,支持库也是如此。