0

我在一个新项目中使用 api 2.3.3,我使用我的平板电脑三星银河选项卡 2,当我改变方向时会创建一个新活动。

这是我正在尝试的简单代码:

主要活动

public class MainActivity extends Activity {

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Log.e("TAG","ONCREATE");
        }

        @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE) {
                Log.e("TAG","LANDSCAPE");
            }else{
                Log.e("TAG","PORTRAIT");
            }
        }

显现

  <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="14" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main"
            android:configChanges="orientation|keyboardHidden|keyboard"> 
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />            
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

我认为我的代码很好,我已经阅读了很多示例,并且是一样的。

我怎么了?

谢谢

4

3 回答 3

2
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) 
{
    super.onRestoreInstanceState(savedInstanceState);
    if (savedInstanceState != null) 
    {
        if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
        {
            // code for portrait
        }
        else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
        {
            // code for landscape
        }

    }
}

试试上面的代码而不是 onConfigurationChanged 方法,它对我很有用。

于 2012-12-04T12:45:03.810 回答
1

如果您正在为大于 13 的 API 构建,那么您需要使用:

android:configChanges="orientation|screenSize"
于 2013-03-18T06:28:04.777 回答
0

尝试删除清单文件中的键盘和键盘隐藏字并检查它。像:

android:configChanges="orientation"
于 2012-12-04T12:38:01.970 回答