0
ダイアログを表示することから始まるAndroidアプリがあります。私は向きをポートレートに設定し、Android 3.1エミュレータで実行するとダイアログが表示されますが、ユーザーが一度それを終了すると再び表示されます。これは、3.2エミュレータで、または方向が設定されていない場合には発生しません。ポートフォリオをポートレートに設定してAndroid 3.1でダイアログが2回表示されないようにするにはどうすればよいですか?Android 3.1では向きがポートレートに設定されているときにダイアログが2回表示されますが、3.2でうまく動作します。
は、ここでは、コードです:
<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>
私のエミュレータが開いたらそれが重要ならば、それは、風景の中にあります:
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();
}
}
ここでマニフェストがあります。
うーん...それは私の2.2エミュレータ上で動作します...私は違うのだろうか。それはあなた:-)
例えばお役に立てば幸いです。あなたが提案する 'onDestroy'関数はどこに置くのですか? (私は 'dialog'という変数を持っていないので、別のものが必要なのかどうかは分かりませんでした。) – BenH
@BenHあなたのアクティビティに' onDestroy() 'を置くことができます。申し訳ありません、onCreateDialog()を使用するのを忘れてしまったので、[dismissDialog(int)](http://developer.android.com/reference/android/app/Activity.html#dismissDialog(int))を使用できます。 –