1

私のアプリケーションでは、以下に示すように onConfigurationChanged メソッドをオーバーライドしました

@Override
public void onConfigurationChanged(Configuration newConfig) {
    System.out.println("Configuration Changed");
    Configuration c = getResources().getConfiguration();

    if (c.orientation == Configuration.ORIENTATION_PORTRAIT) {
        // portrait

    } else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        // landscape

    }
}

しかし、画面の向きが呼び出されたときに呼び出されていません。

マニフェストでは、私のアクティビティは次のようになります

<activity
        android:name=".MainActivity"
        android:configChanges="orientation"
        android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
4

1 に答える 1

2

呼び出されなかっsuper.onConfigurationChanged(newConfig);たので、メソッドは次のようになりました

@Override
public void onConfigurationChanged(Configuration newConfig) {

  super.onConfigurationChanged(newConfig);

  System.out.println("Configuration Changed");
  Configuration c = getResources().getConfiguration();

  if (c.orientation == Configuration.ORIENTATION_PORTRAIT) {
    // portrait
  } else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    // landscape
  }

}

android:configChanges="orientation|screenSize"マニフェストにも追加されました。

ありがとうSSS :-)

于 2013-01-22T09:38:19.743 に答える