API低于17的java Android AlertDialog setOnDismissListener
我创建了一个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 false false false, true }
”可以
在对话框中,默认情况下选中/取消选中
当我打开对话框时,更改项目的选择,然后关闭对话框(通过按“取消”或设备的“上一步”按钮)。到目前为止还不错
但当我重新打开对话框时,这些项的状态与上次打开对话框时的更改相同
但是,当对话框在第一次打开时被取消时,我想让项目处于选中/取消选中状态,就像我创建对话框时一样(new Boolean[] { false, true, false false false false, true }
)
所以基本上,我需要一个机会,在对话框丢失时得到通知,这样我就可以重置项目的状态
我用对话框对象的setOnDismissListener试过了。不幸的是,这只在API 17中可用
setOnDismissListener在emulator(API 17)中非常适合我(正是我所需要的),但在我的设备(Android 4.1=>;API 16)上却不行
API 16中有类似的东西吗
# 1 楼答案
问题是你正在使用
setOnDismissListener
的AlertDialog.Builder
。这是在Api级别17中引入的,AlertDialog
本身自Api级别1以来一直存在