gpt4 book ai didi

java - 使用 values.xml 设置 Android Activity 屏幕方向

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:48:04 30 4
gpt4 key购买 nike

我正在尝试使用 res/values 中的 XML 文件中的值设置 Activity 屏幕方向。我想这样做是因为,或多或少,我需要为平板电脑(横向)和智能手机(纵向)提供相同的 Activity。

先试试

list :

<activity android:name="..." android:screenOrientation="@string/defaultOrientation"/>

配置文件:

<string name="defaultOrientation">portrait</string>

但是使用这个设置应用程序不会出现在设备上并且它会返回这个错误:

java.lang.NumberFormatException: Invalid int: "portrait"

第二

OK,所以我干脆改成了这样

list :

<activity android:name="..." android:screenOrientation="@integer/defaultOrientation"/>

配置文件:

<integer name="defaultOrientation">1</integer>

我使用 1 因为 ActivityInfo.SCREEN_ORIENTATION_PORTRAIT == 1。

但这也不起作用。看来我可以修改一些值,例如应用程序/Activity 名称,但不能修改屏幕方向?

我知道我可以通过代码解决它,但出于某种原因,我觉得这也应该可以通过 XML 值文件获得。

是否有可能通过 XML 值来实现?

最佳答案

你的第二个解释对我来说是同样的问题,我使用了你不需要的代码解决方法。

我在 res 文件夹下添加了 4 个 values 文件夹。 “值”、“值-v11”、“值-v14”和“值-sw720dp”

所有值文件夹都有“integers.xml”。

“values”和“values-v14”的值为 1,即纵向;
<integer name="portrait_if_not_tablet">1</integer> .

“values-v11”和“values-sw720dp”的值为2,即用户导向;
<integer name="portrait_if_not_tablet">2</integer> .

并且在 Manifest 文件中,activity 具有如下属性;
android:screenOrientation="@integer/portrait_if_not_tablet" .

所有“values”、“values-v11”、“values-v14”都按预期工作,但“values-sw720dp”!

调试时我意识到 portrait_if_not_tablet 的值在带有 getResources().getInteger(R.integer.portrait_if_not_tablet) 的 sw720dp 设备(带有 API 16)上如预期的那样出现但是当我通过 getRequestedOrientation() 检查当前方向的值时我得到了不同的值。

int requestedOrientation = getResources().getInteger(R.integer.portrait_if_not_tablet);
int currentOrientation = getRequestedOrientation();
if (currentOrientation != requestedOrientation) {
setRequestedOrientation(requestedOrientation);
}

所以我在我的 Activity 的 onCreate 方法上使用了一个代码块来解决这个问题。

关于java - 使用 values.xml 设置 Android Activity 屏幕方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13642792/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com