Java API低于17的Android AlertDialog SetOnDiskListener

Java API低于17的Android AlertDialog SetOnDiskListener,java,android,dialog,Java,Android,Dialog,我创建了一个AlertDialog: private CharSequence[] _items = { "item1", "item2", "item3", "item4", "item5", "item6", "item7" }; AlertDialog.Builder daysBuilder = new AlertDialog.Builder(this); daysBuilder.setTitle("SomeCaption"); daysBuilder.setMulti

我创建了一个AlertDialog:

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,true}
”将项目 在对话框中,默认情况下选中/取消选中

当我打开对话框时,更改项目的选择,然后(通过按取消或设备的后退按钮)关闭对话框。到目前为止还不错

但当我重新打开对话框时,这些项的状态与上次打开对话框时的更改相同

但是,当对话框在第一次打开时被取消时,我希望项目处于选中/取消选中状态,就像我创建对话框时一样(
new Boolean[]{false,true,false,true}

因此,基本上我需要一个机会在对话框丢失时得到通知,这样我就可以重置项目的状态

我用对话框对象的setOnDismissListener尝试了它。不幸的是,这仅在API 17中可用

setOnDismissListener在emulator(API 17)中非常适合我(正是我所需要的),但在我的设备(Android 4.1=>API 16)上却不行


API 16中是否有类似的内容?

问题在于您使用的是
AlertDialog.Builder的
setOnDismissListener
。这是在Api级别17中引入的,
setOnDismissListener
AlertDialog
本身自Api级别1以来就一直存在

AlertDialog alert = daysBuilder.create();
alert.setOndismissListener(yourdismisslistener);
alert.show();`

来自Api级别1hmm,谢谢您的回答。但即使是Eclipse也在抱怨SetOnDismissListener只适用于API17,并警告我,这对我来说并不适用:先生,你需要更多的奖牌,为我工作。(y) 。谢谢