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

标签 java android dialog listener dialogfragment

所以,我尝试设置 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由于某种原因 new 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);
    }
}

创建一个接口(interface)类,例如

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);
    }
}

希望对你有帮助:)

关于java - "cannot find symbol method setOnDismissListener(<anonymous OnDismissListener>)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47604483/

相关文章:

java - 使用 Jackson 将具有 HashMap 的对象序列化为 JSON 时出现映射异常

Java 反转 Switch 语句

java - android项目中Intellij-Idea的渲染问题

java - notepad++ 的 nppexec 中的\t 间距

java - 你如何序列化 Guava 集合?

java - 当我们在 Whatsapp 中发送任何视频或音乐时,如果因任何情况而中断,它如何恢复?

java - Android MotionLayout : How to handle both click and swipe events on same view?(包括视频示例)

android - 调用对话结果的 Activity

javascript - Jquery UI 模态对话框

intellij-idea - 增加 IntelliJ 选择运行配置对话框的大小