Android:停止在方向更改时重新创建活动

21

我的主布局(main.xml)中有一个带有两个按钮的列表视图(listview)。当点击其中一个按钮时,我会动态创建一个文本视图(textview),并将其添加到屏幕底部以确认用户交互。当用户点击第二个按钮(确认按钮)时,我需要将该文本添加到列表视图中。为了支持横向模式,我在layout-land文件夹中使用相同的布局文件。当我点击第一个按钮时,它会创建带有一些文本的文本视图,并将其添加到屏幕底部。现在如果我更改设备方向,则会加载横向的main.xml文件并重新创建活动。因此,我的文本视图被折叠了。如何防止在方向更改时重新创建活动(但应选择其他布局文件)。


https://dev59.com/inRB5IYBdhLWcg3w9Lzn - Samir Mangroliya
2个回答

47

只需编辑androidmanifest.xml中的Activity标签。

<activity
            android:configChanges="keyboardHidden|orientation"
            android:name=".testActivity"
            android:label="@string/app_name"></activity>

41
在较新的Android版本中,请使用android:configChanges="keyboardHidden|orientation|screenSize" - jhavatar
4
这会禁用布局更改。我该怎么修复? - Noobification

16

如果您的应用程序目标API级别为12或更低,则您的活动始终会自行处理此配置更改(即使在运行于Android 3.2或更高版本的设备上时,此配置更改也不会重新启动您的活动)。

您应该添加screenSize

API级别13中添加。

那么它应该是这样的。

<activity
                android:configChanges="keyboardHidden|orientation|screenSize"
                android:name=".testActivity"
                android:label="@string/app_name"></activity>

http://developer.android.com/guide/topics/manifest/activity-element.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接