0

アプリで加速度計のデータを使用しています。デバイスの角度を変更すると、画面の向きが変わるはずです。向きを変えるために、縦向きと横向きの2つのレイアウトがあります。

向きが変わると、次のようにレイアウトを変更する関数が呼び出されます。

setContentView(R.layout.landscape); またはsetContentView(R.layout.portrait);

これは正常に機能しますが、ボタンやToggleButtonsなどのいくつかの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 に答える