"cannot find symbol method setOnDismissListener(<anonymous OnDismissListener>)"

"cannot find symbol method setOnDismissListener(<anonymous OnDismissListener>)"

所以,我尝试在对话框中设置 OnDismissListener

Datepicker dialog = new Datepicker(v);
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
                    @Override
                    public void onDismiss(DialogInterface Dialog) {
                        mGoogleMap.clear();
                        setMap(mGoogleMap);
                    }

                });

但是它说

"Cannot resolve method 'setOnDismissListener(anonymous android.content.DialogInterface.OnDismissListener)'"

Datepicker class 扩展了 DialogFragment,所以它应该有 setOnDismissListener 方法?

我出于某种原因导入了 android.content.DialogInterface'. Is it confused on the新 DialogInterface.onDismissListener()`?

编辑:有人要求提供一些日期选择器代码。所以这是构造函数和其他东西。如果您还需要什么,请告诉我。

public class Datepicker extends DialogFragment implements DatePickerDialog.OnDateSetListener {
    EditText txtDate;
    String strdate;
    public Datepicker(View v){
        txtDate = (EditText)v;
    }
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);
        SimpleDateFormat simpleformat = new SimpleDateFormat("MM/dd/yyyy");
        strdate = simpleformat.format(c.getTime());
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }
}

你必须在界面的帮助下解决这个问题

public class Main3Activity extends AppCompatActivity implements DatePickerListener{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

.........

     //Initialise or create your dialog like this
      DatePicker dialog = new DatePicker(v,this);
}

@Override
    public void onDatePickerDismissed() {
         //Here You receive the dialog dissmiss listner
                        mGoogleMap.clear();
                        setMap(mGoogleMap);
    }
}

创建界面class喜欢

public interface DatePickerListener {

    public void onDatePickerDismissed();
}

像这样更改对话框选择器

@SuppressLint("ValidFragment")
public class DatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener {
    EditText txtDate;
    String strdate;
    DatePickerListener datePickerListener;
    @SuppressLint("ValidFragment")
    public DatePicker(View v, DatePickerListener _datePickerListener){
        txtDate = (EditText)v;
        this.datePickerListener = _datePickerListener;
    }

    public DatePicker() {

    }

    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);
        SimpleDateFormat simpleformat = new SimpleDateFormat("MM/dd/yyyy");
        strdate = simpleformat.format(c.getTime());
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    @Override
    public void onDateSet(android.widget.DatePicker datePicker, int i, int i1, int i2) {

    }

    @Override
    public void onDismiss(DialogInterface dialog) {
        datePickerListener.onDatePickerDismissed();
        super.onDismiss(dialog);
    }
}

希望对您有所帮助:)