如何在对话框中设置解除侦听器?

时间:2016-03-05 02:57:11

标签: android android-fragments

我有一个listView,当用户退出对话框并决定不继续时,我想取消选中该项目。问题是 - 我无法知道用户是否驳回了对话框。这是我能够提出的最好的

// inside a DialogFragment
@Override
public void dismiss() {
    Log.d("dismiss", "Dismissed");
    if (logEntries.customLocation == false) {
        logEntries.drawer.customLocationNotSelected(true);
    }
}

有谁知道如何设置监听器来跟踪对话解雇?

1 个答案:

答案 0 :(得分:1)

您可以使用类似

的布尔标志
boolean isSavedCheck = false;

在setPositiveButton()方法中,如果保存所选项目,则设置isSavedCheck = true;

.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int id) {
        isSavedCheck = true;
     });

如果调用setNegativeButton()并且isSavedCheck = false;然后取消所有检查项目。

.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int id) {
        if(!isSavedCheck){
           // cancel all check boxes
        }
     });