Java API低于17的Android AlertDialog SetOnDiskListener
我创建了一个AlertDialog: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
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) 。谢谢