より低い私はAlertDialogを作成:文を通してのAndroid AlertDialog setOnDismissListenerは17
private CharSequence[] _items = { "item1", "item2", "item3", "item4",
"item5", "item6", "item7" };
AlertDialog.Builder daysBuilder = new AlertDialog.Builder(this);
daysBuilder.setTitle("SomeCaption");
daysBuilder.setMultiChoiceItems(_items,new Boolean[] { false, true, false,
false false false, true }, SetListener);
daysBuilder.setPositiveButton("OK", OKListener);
daysBuilder.setNegativeButton("Cancel", CancelListener);
AlertDialog alert = daysBuilder.create();
alert.show();`
"new Boolean[] { false, true, false false false false, true }
は" ダイアログ内の項目 は、デフォルトではチェックなし/チェックします。
ダイアログを開くと、項目の選択が変更されますが、キャンセル(キャンセル)またはデバイスの戻るボタンを押すとダイアログが消えます。ここまでは順調ですね。
しかし、私がダイアログを再び開くと、アイテムはダイアログの最後の開きからの前回の変更のチェックされた/チェックされていない状態になります。
最初のオープニングでダイアログが終了したときに、ダイアログを作成したときのようにアイテムをチェック/チェック解除した状態にしたい(new Boolean[] { false, true, false false false false, true }
)。
基本的に私は、ダイアログが消されたときに通知を受ける機会が必要なので、アイテムの状態をリセットできます。
私は、ダイアログオブジェクトのsetOnDismissListenerで試しました。残念ながら、これは
APIで17setOnDismissListenerエミュレータ(API 17)に(私が必要正確に何)私のために完璧に働いたではなく、私のデバイス(アンドロイド4.1 => API 16)にだけ使用可能です
ありAPI 16に似た何か?
[setOnDismissListener(http://developer.android.com/reference/android/app/Dialog.html#setOnDismissListenerためされています%28andandroid.content.DialogInterface.OnDismissListener%29)がApiレベル1から存在します – nandeesh
あなたの答えをありがとう。しかし、EclipseでもSetOnDismissListenerがAPI17のためだけであり、という警告が表示されます。 android:minSdkVersion = "16" <===警告 android:targetSdkVersion = "17" /> 警告が表示されますが、デバイス上でアプリがクラッシュします... Eclipseでは、setOnDismissListenerがAPI17で追加されたことも伝えています –
Eudaimonie