在我的应用程序中,我只是覆盖了下面给出的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>
答案 0 :(得分: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: - )