我创建了一个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();`
Run Code Online (Sandbox Code Playgroud)
通过语句" new Boolean[] { false, true, false false false false, true }"默认情况下,对话框中的项目将被选中/取消选中.
当我打开对话框时,更改项目的选择但随后解除(通过按取消或设备的后退按钮)对话框将被取消.到现在为止还挺好.
但是当我重新打开对话框时,项目具有从对话框的最后一次打开开始的先前更改的已检查/未检查状态.
但是当对话框在第一次打开时被解除时,我想要检查/取消选中项目状态,就像我创建对话框(new Boolean[] { false, true, false false false false, true })时一样.
所以基本上我需要有机会在对话框被解雇时得到通知,这样我就可以重置项目的状态.
我用对话框对象的setOnDismissListener尝试了它.不幸的是,它仅在API 17中提供.
setOnDismissListener在模拟器(API 17)中对我(完全是我需要的)工作非常完美,但在我的设备上却没有(Android 4.1 => API 16)
API 16中有类似的东西吗?