【发布时间】:2017-09-02 11:23:29
【问题描述】:
我正在尝试在 Android 设备旋转时启动一个新活动,但我什至没有在模拟器中检测到旋转。
我已经阅读了Android: listen for Orientation change? 的帖子,这一切似乎都是有道理的,但它只是不起作用。
在我的清单中,我有:
<activity
android:name=".MainActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
在我的mainActivity.java 我有:
@Override
public void onConfigurationChanged (Configuration newConfig) {
super.onConfigurationChanged(newConfig);
int orientation=newConfig.orientation;
switch(orientation) {
case Configuration.ORIENTATION_LANDSCAPE:
showMessage("landscape");
break;
case Configuration.ORIENTATION_PORTRAIT:
showMessage("portrait");
break;
}
}
这显然不会启动新的活动,但我试图让方向检测首先工作(showMessage 只是调用了一个 Toast 并且在我的代码的其他地方工作,所以这不是我什么都看不到的原因) .
当我在模拟器中运行它并使用旋转按钮时,模拟器会按预期旋转,但我从未看到 Toast...
我哪里错了? (我正在根据配置常量的要求导入android.content.res.Configuration)。
【问题讨论】: