【发布时间】:2017-12-02 04:08:00
【问题描述】:
所以,我尝试在对话框中设置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 类扩展了DialogFragment,所以它应该有setOnDismissListener 方法?
我出于某种原因导入了android.content.DialogInterface'. Is it confused on thenew DialogInterface.onDismissListener()`?
编辑:有人要求提供一些 Datepicker 代码。所以这里是构造函数和东西。如果您还需要什么,请告诉我。
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);
}
}
【问题讨论】:
-
Datepicker类扩展了DialogFragment,所以它应该有setOnDismissListener方法? - 你是从哪里以及如何得出这个声明的?在DialogFragment中没有这种方法叫setOnDismissListener -
嗯。也许这就是我出错的地方? Android API 说“注意:DialogFragment 拥有 Dialog.setOnCancelListener 和 Dialog.setOnDismissListener 回调。您不能自己设置它们。要了解这些事件,请覆盖 onCancel(DialogInterface) 和 onDismiss(DialogInterface)。”但我不知道那是什么意思。我能做什么?
-
API 说得很清楚,你不应该这样做
setOnCancelListener或setOnDismissListener,只需在你的类中直接覆盖onCancel或onDismiss扩展DialogFragment(并做你想要在对话框被取消/关闭时做)
标签: java android dialog listener dialogfragment