2011-08-20 80 views

回答

7

您可以通过在manifest.xmlactivity元素中声明特定的属性来完成此操作。有问题的元素被称为android:configChanges,您需要注册字符串值orientation

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

documentation

现在,当这些配置的一个改变,MyActivity不 重新启动。相反,活动接收对onConfigurationChanged()的调用 。此方法传递一个配置对象 ,它指定新的设备配置。通过读取 配置中的字段,您可以通过更新界面中使用的资源来确定新配置并进行适当的更改。 在这个方法被调用的时候,你的作业资源对象是 更新基础上,新的配置,返回的资源,所以你可以 轻松重置您的UI元素,而无需系统重新启动 活动

这样算下来这会导致您的Activity无法重新启动,并且还会回拨到以便可以自己处理更改。

+0

你能给我一些示例代码吗?我似乎无法得到它的工作。 – gsfd

+0

什么是你似乎无法工作?你能通过编辑提供你的问题的更新吗?如果你提到你所尝试过的东西,以及具体哪些不起作用,这将会有所帮助。 –

+3

除了“方向”之外,根据您的问题,您可能还需要添加相关的键盘配置更改以处理键盘操作,因此您可能希望放置的值为“方向|键盘|键盘隐藏”。正如尼古拉斯所说,你可能想/需要自己处理onConfigurationChanged() – momo

0

如果你阅读文档here,你会看到,你可以指定你的清单如下:

<activity ... 
    android:configChanges="orientation"> 

一旦你有了这个,你可以实现onConfigurationChanged()方法收到有关方向改变的通知,或者只是使用基类的实现。

+0

复制其他人的好工作 –

+2

@Arvin两个答案相隔4分钟。这个答案不太可能是一个“副本”,只是一个同时发布的等价答案。它始终发生,并不是什么大不了的事情。除非后面的答案实际上增加了一些有用的东西,否则人们普遍赞成更早的答案。你的评论听起来像酸葡萄,因为你自己的答案是低调的。 –

相关问题