适用于API的Android AlertDialog setOnDismissListener低于17

Eud*_*nie 29 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.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中有类似的东西吗?

nan*_*esh 84

问题是你正在使用setOnDismissListenerAlertDialog.Builder.这是在API级别17引入setOnDismissListenerAlertDialog本身已经从API级别1.

AlertDialog alert = daysBuilder.create();
alert.setOndismissListener(yourdismisslistener);
alert.show();`
Run Code Online (Sandbox Code Playgroud)

  • 你,先生需要更多的奖牌. (2认同)