Java v21更新到Android Studio,现在我有了activity_main&;主要活动(v21)?我在哪里工作?
Android Studio给了我一个关于v21更新的警告,所以我就这么做了。现在在我的activity_main文件夹下有两个文件:activity_main和activity_main(v21)。如果我使用activity_主文件夹,Android studio会更新这两个文件吗?是否需要(v21)文件?我不知道该怎么办。堆栈溢出会鼓励这些类型的问题被否决/标记/删除,但我会做得更好一点 当您在Java v21更新到Android Studio,现在我有了activity_main&;主要活动(v21)?我在哪里工作?,java,android,android-studio,Java,Android,Android Studio,Android Studio给了我一个关于v21更新的警告,所以我就这么做了。现在在我的activity_main文件夹下有两个文件:activity_main和activity_main(v21)。如果我使用activity_主文件夹,Android studio会更新这两个文件吗?是否需要(v21)文件?我不知道该怎么办。堆栈溢出会鼓励这些类型的问题被否决/标记/删除,但我会做得更好一点 当您在res/文件夹(参考资料)中看到子/类似文件夹时,您看到的是/是在config\u限定符匹配时将使
res/
文件夹(参考资料)中看到子/类似文件夹时,您看到的是/是在config\u限定符匹配时将使用的备用资源
例如:
layouts
value文件夹通常具有layouts-v21
或类似版本
假设您有以下XML:
res/layout/main.xml
您需要为运行API21或更高版本的设备提供一个布局,其中包含一个只在API21上工作的特定小部件/视图
一种解决方案(但不是唯一的)是为这些设备提供备用资源,并在找不到时退回到原始资源:
res/layout-v21/main.xml
如果设备运行在API 21或更高版本上,Android将在运行时自动为您选择“正确”的
如果您不提供它(假设您在/layout文件夹中只有main,而不是v21),当android在layout-v21中找不到它时,它将尝试转到下一个(按优先级),在这种情况下,只需/layout
如果在那里找不到,您将得到一个异常。:)
这就是“资源”101。希望能有帮助
现在…回答你的问题。如果两者不同,您需要同时处理“两者”。事实上,这取决于您支持哪种minApi(显然低于21,否则您不需要破例)。如果是这种情况(您支持的是超过21台的旧设备),那么是的,您需要在这两种设备上工作,以确保它们在所有平台上都能工作
或者,对于布局,通常不需要两者都有。我认为最好使用一个通用布局,并在相应的v21
子文件夹中指定styles.xml
和themes
我的意思是…如果某些属性只在API 21+上起作用,那么您可以有:
values/styles.xml
没有some_属性和
values-v21/styles.xml
就是它。有多种方法可以解决这个问题,有时你必须“复制粘贴”东西来复制它们。如果您可以支持API21+,那么您就不必经常出现这些异常。(由于API 21和23带来了大量的变化……在API级别进行区分是很常见的,就像Android Studio为您所做的那样,因为API 21带来了许多在较低的API中不受支持的东西) 您好,辛迪博士,欢迎来到Stack Overflow!你的问题内容很差,;用户对新用户提出“坏问题”有点“苛刻”。尽管有上述情况(或我对您的问题的看法),您要查找的信息仍位于此处(特别是“提供替代资源”部分)。感谢您的帮助!有时候独自学习是很难的@马丁马可尼