0

我是android开发的新手。我正在编写一个应用程序,我的要求是当方向改变时应用程序不会重新启动。下面是我在三星 Galaxy Duos 手机中测试的示例应用程序。

我正在使用 4.0.4 Android OS 版本,我的应用程序是在 API 级别 8 下开发的。

我尝试了以下方法:

android:configChanges="orientation|keyboard|keyboardHidden"
android:configChanges="orientation|keyboard"
android:configChanges="orientation"
android:configChanges="keyboard|keyboardHidden"
android:configChanges="orientation|keyboardHidden"

请帮我

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toast.makeText(getApplicationContext(), "this is starting",Toast.LENGTH_LONG).show(); 
    }   
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

    if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
    {
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
        //setContentView(R.layout.activity_main);
    }
     if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
    {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
        //setContentView(R.layout.activity_main );
    } 
    }


}

和我的主要文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.orientationtest"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <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|keyboard|keyboardHidden">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

4 回答 4

0

试试这个:

    <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name">
    <activity
        android:name=".YourMainActivity"
        android:label="@string/title_activity_main"
        android:configChanges="keyboardHidden|orientation|screenSize"
        >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
 ....
 </application>
于 2013-03-21T10:07:19.497 回答
0
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"

因为Android 3.0+如果您希望系统管理您的方向更改,您还应该添加screenSize.

您应该在清单中设置为targetSdkVersionversion >= 3.0。例如

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" />
于 2013-03-21T10:03:01.460 回答
0

利用

android:configChanges="orientation|keyboardHidden"

在您的清单文件中

这个对我有用

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.stack.MainActivity" android:configChanges="orientation|keyboardHidden"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
于 2013-03-21T10:03:30.490 回答
0

添加

android:configChanges="orientation|keyboardHidden|screenSize"

在清单的活动声明中。

于 2013-03-21T10:09:14.343 回答