ダイアログを表示することから始まる Android アプリがあります。向きを縦に設定して Android 3.1 エミュレーターで実行すると、ダイアログが表示されますが、ユーザーがダイアログを閉じると、再び表示されます。これは、3.2 エミュレーターまたは方向が設定されていない場合には発生しません。Android 3.1 で縦向きに設定されたダイアログが 2 回表示されないようにするにはどうすればよいですか?
コードは次のとおりです。
public class TestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
showDialog(0);
}
protected Dialog onCreateDialog(int id) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Message.")
.setPositiveButton("Ok.", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// nothing
}
});
return builder.create();
}
}
マニフェストは次のとおりです。
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".TestActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
私のエミュレーターが開いたとき、それが重要な場合は横になっています。