多个日期选择器对话框

时间:2012-01-18 07:00:03

标签: android datepicker

我的Activity类中有4个DatePicker对话框,单击4个按钮即可显示。现在对于这些datePickerDialog我想使用相同的监听器。

        DatePickerDialog taxPickerDialog = new DatePickerDialog(getCurrentContext(),dateSetListener,calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE));
        taxPickerDialog.show();

        DatePickerDialog fcPickerDialog = new DatePickerDialog(getCurrentContext(),dateSetListener,calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE));
        fcPickerDialog.show();
        break;

        DatePickerDialog expiryPickerDialog = new DatePickerDialog(getCurrentContext(),dateSetListener,calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE));
        expiryPickerDialog.show();


        DatePickerDialog permitPickerDialog = new DatePickerDialog(getCurrentContext(),dateSetListener,calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE));
        permitPickerDialog.show();

现在我想要一个使用监听器但是不知道如何实现这个???

DatePickerDialog.OnDateSetListener dateSetListener =new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int year, int month, int day) {
    switch(????){????}
}
};

3 个答案:

答案 0 :(得分:0)

class DPlistener implements OnDateSetListener
{

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {

         //you can here
        if (view.equals(expiryPickerDialog))
        {
      //do needfull
              }
    }}

并在你的datepicker视图中注册这个监听器。确保这个类是你活动的内部类

答案 1 :(得分:0)

希望你现在可以解决这个问题。只是提出一个想法 - “您可以为与ID关联的TAG设置某种DatePickerDialog,然后您可以通过查询已设置的内容来区分(ID/TAG) 1}}“。

答案 2 :(得分:0)

我知道这是一个迟到的回复,但我最近遇到了同样的情况。所以这是我的答案,

`DialogFragment.Show(FragmentManager manager, String tag))`

方法是Fragment本身的set标签。所以这个标签可以按如下方式使用:

Fragment dateTo=getActivity().getSupportFragmentManager().findFragmentByTag("dateTo");
            if(dateTo!=null){
                //do something

            } 

一个用例是你可以在一个活动中显示多个Fragment并识别你可以用给定标签找到该片段的片段。如果它不是null,宾果!