Android 方向更改-更新用户界面

Android 方向更改-更新用户界面,android,screen,orientation,landscape,portrait,Android,Screen,Orientation,Landscape,Portrait,我在我的应用程序中使用加速计的数据。如果设备的角度改变,屏幕方向应该改变。 为了改变方向,我有两个布局,一个用于纵向,一个用于横向 当方向更改时,将调用一个函数,该函数使用以下内容更改布局: setContentView(右布局、景观);或setContentView(R.layout.portrait) 这很好,但是我对一些UI元素(如按钮或切换按钮)有问题。 我在onCreate方法中为它们初始化onClickListener,每次更改方向时,我都初始化一个新的onClickListener

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

当方向更改时,将调用一个函数,该函数使用以下内容更改布局:

setContentView(右布局、景观);或setContentView(R.layout.portrait)

这很好,但是我对一些UI元素(如按钮或切换按钮)有问题。 我在onCreate方法中为它们初始化onClickListener,每次更改方向时,我都初始化一个新的onClickListener

不幸的是,我不能再改变切换按钮的状态了


如何解决此问题?

您可以使用
/layout land
/layout port
,手机会在方向改变时自动为您切换。看

关于切换按钮,请参见
onRetainonConfiguration实例()


正如比尔·加里(Bill Gary)在上文中所描述的,为什么不让系统为您处理方向的变化呢?此外,在执行此操作时,标准系统小部件应自动保持其状态。如果需要,请参阅以了解管理自定义状态的原因和方法。

我不希望系统更改方向。我有方向更改的特定值。