0

私はアンドロイドアプリに取り組んでいます。私のアプリは、縦向きと横向きの両方のモードで動作するはずです。すべてのレイアウト ファイルを layout-lan フォルダーに保存して、すべてのレイアウトを調整しました。しかし、今私の問題は機能にあります。つまり、アプリが横向きモードに変更されると、パラメーターの値が変更され、これによりクラッシュが発生します。つまり、カウンター値を保持していましたが、ポート LAN にすると間違ったカウント値が表示されます。また、これにより機能が変更されています。この点で私を助けてください。

4

3 に答える 3

1

デバイスを回転させるたびに、onCreate メソッドが再度呼び出されます。onSavedInstanceState をオーバーライドして値を保存し、onRestoreInstanceState または onCreate メソッドで値を取得できます。例えば:

値を保存します。

 public void onSaveInstanceState(Bundle outState) {
        outState.putBoolean("booleanValue", true);
}

値を復元します (これは onCreate でも呼び出すことができます):

 protected void onRestoreInstanceState(Bundle savedInstanceState) {
        if (savedInstanceState != null && savedInstanceState.containsKey("booleanValue")) {
            boolean myBoolean = savedInstanceState.getBoolean("booleanValue");
        }
        super.onRestoreInstanceState(savedInstanceState);
    }
于 2013-02-25T16:11:38.720 に答える
0

ローテーション中にアクティビティが破棄されて再構築されるため、これらの値が変化します。

アクティビティの状態を保存する方法については、開発者ガイドを確認してください。

http://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState

于 2013-02-25T16:07:22.457 に答える
0

向きが変わるたびにアクティビティが再開されます。

に値を保存しonSaveInstanceState、に復元する必要がありonRestoreInstanceStateます。詳細はこちらにあります: http://developer.android.com/guide/topics/resources/runtime-changes.html

于 2013-02-25T15:56:33.947 に答える