相关疑难解决方法(0)

如何在Android上禁用方向更改?

我有一个应用程序,我只想在纵向模式下使用,所以我在清单XML中定义了android:screenOrientation ="portrait".这适用于HTC Magic手机(并防止其他手机上的方向更改).

但是当我打开硬件QWERTY键盘(而不是虚拟键盘)时,我的HTC G1手机有问题.我的活动保持纵向模式,但它似乎重新启动并失去所有状态.HTC Hero版本不会发生这种情况.

我的应用程序非常大,因此我不希望它在键盘打开时重新启动并丢失所有状态.我怎么能防止这种情况?

android android-orientation android-activity

282
推荐指数
9
解决办法
24万
查看次数

Android方向更改调用onCreate

我创建了一个搜索屏幕,其中包含一个用于关键字,过滤器和搜索按钮的选项卡,以及三个用于不同类型结果的可选选项卡(每个包含一个ListView带有a ArrayAdapter).启动活动时,Parcelable[]如果已执行搜索,开发人员可以选择将结果作为额外内容传递.在onCreate()方法中,我正在创建Parcelable[]传递的三个选项卡中的每一个.

当我从过滤器选项卡上的按钮调用搜索时,我清除选项卡并使用新结果重新创建它们,这非常有效.问题是,当您旋转设备时,Android的自动方向切换支持似乎会重新创建整个活动,即调用onCreate().这意味着我的搜索结果将重置为Parcelable[]启动活动时传递的内容.

到目前为止,我唯一的解决方案就是调用finish()然后startActivity()用新结果重新启动活动.我确信必须有一个更简单的解决方案,而且我做了一些非常无趣的事情.

有一个更好的方法吗?

android android-orientation android-activity

14
推荐指数
2
解决办法
2万
查看次数