0

我在我的应用程序中使用加速度计的数据。如果设备的角度改变,屏幕方向应该改变。为了改变方向,我有两种布局,一种用于纵向,一种用于横向。

当方向改变时,会调用一个函数来改变布局:

setContentView(R.layout.landscape); 或 setContentView(R.layout.portrait);

这很好用,但我对按钮或切换按钮等几个 UI 元素有疑问。我在 onCreate 方法中为它们初始化了一个 onClickListener,并且每次改变方向时我都会初始化一个新的 onClickListener。

不幸的是,我不能再改变 ToggleButtons 的状态了。

我怎么解决这个问题?

4

2 回答 2

1

您可以使用/layout-land并且/layout-port手机会在方向更改时自动为您切换它们。看

http://developer.android.com/guide/practices/screens_support.html#DesigningResources

至于切换按钮,请参见onRetainNonConfigurationInstance()

http://developer.android.com/reference/android/app/Activity.html#onRetainNonConfigurationInstance%28%29

于 2012-01-31T19:41:55.803 回答
0

正如上面 Bill Gary 所描述的,为什么不让系统为您处理方向变化呢?此外,当您执行此操作时,标准系统小部件应自动保留其状态。如果需要,请参阅此处了解为什么以及如何管理自定义状态。

于 2012-02-01T03:00:52.367 回答