Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java v21更新到Android Studio,现在我有了activity_main&;主要活动(v21)?我在哪里工作?_Java_Android_Android Studio - Fatal编程技术网

Java v21更新到Android Studio,现在我有了activity_main&;主要活动(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限定符匹配时将使

Android Studio给了我一个关于v21更新的警告,所以我就这么做了。现在在我的activity_main文件夹下有两个文件:activity_main和activity_main(v21)。如果我使用activity_主文件夹,Android studio会更新这两个文件吗?是否需要(v21)文件?我不知道该怎么办。

堆栈溢出会鼓励这些类型的问题被否决/标记/删除,但我会做得更好一点

当您在
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!你的问题内容很差,;用户对新用户提出“坏问题”有点“苛刻”。尽管有上述情况(或我对您的问题的看法),您要查找的信息仍位于此处(特别是“提供替代资源”部分)。感谢您的帮助!有时候独自学习是很难的@马丁马可尼