我希望能够在将设备重定向到横向或纵向时更改布局。出于速度和资源目的(以及适用于我的应用程序的其他问题),我不希望我的应用程序被销毁和重新启动。我有几个对象,我希望在方向更改之间保留,因为破坏和重新创建它们没有任何好处!我只是想改变一些按钮和TextView的位置,以便它们适合当前的方向。容易吗?
嗯,不,不是。为实现上述目的,我在应用程序中包含了显示方向更改的configChange选项。然后我实现了onConfigurationChanged(),我确定并应用适当的布局。简单的是吗?
但现在采取我的布局中的textview。实际上,使用这种响应方向变化的特定方法,我是否将之前的textview中的相同文本放入新的textview?没有实例数据传递给onConfigurationChanged()方法。对于某些按钮,它们也可以被禁用或启用...我需要在更改动态后知道这一点。
如果我让Android销毁并重启我的活动,那么首先会创建不必要的工作。我想要的只是移动几个按钮和textviews ..不重新启动整个应用程序。那真是荒唐可笑!
任何人都可以帮我实现需要吗?
答案 0 :(得分:2)
维护与配置无关的数据的一种简单方法是使用onRetainNonConfigurationInstance()及其配套方法getLastNonConfigurationInstance()。只需返回一个对象,其中包含重新创建活动时要重用的所有数据。
在Honeycomb中,或者如果您使用的是Android兼容包,则只需拨打Fragment.setRetainInstance(true)即可。参见文档。