DatePicker对话框和按钮=>单击两次打开

时间:2015-04-03 09:00:00

标签: android android-dialog android-datepicker

我在正常活动中使用onCreate方法创建了一个对话框:

 datePicker = new DatePickerDialog(this, this, cal.get(YEAR),
                    cal.get(MONTH), cal.get(DAY_OF_MONTH));

然后我调用一个按钮监听器:

Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                datePicker.show();
                Log.e("tag", "Passage dans le click");

            }
        });

取消时=>

  1. 当我单击此按钮一次时,显示日期选择器。
  2. 我点击对话框上的取消
  3. 我第二次点击按钮,显示日期选择器
  4. 当OK =>

    1. 当我单击此按钮一次时,显示日期选择器。
    2. 我在对话框中单击“确定”
    3. 我第二次点击按钮,没有显示日期选择
    4. 如果我写两次Datepicker.show(),那该工作:

       Button button = (Button) findViewById(R.id.button);
                  button.setOnClickListener(new OnClickListener() {
                      @Override
                      public void onClick(View v) {
                          datePicker.show();
                           datePicker.show();
                          Log.e("tag", "Passage dans le click");
      
                      }
                  });
      

2 个答案:

答案 0 :(得分:0)

你可以尝试下面的代码...每次创建一个对话框对象,它每次都会显示。希望它能奏效。

Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

       datePicker = new DatePickerDialog(this, this, cal.get(YEAR), cal.get(MONTH), cal.get(DAY_OF_MONTH));

                datePicker.show();
                Log.e("tag", "Passage dans le click");

            }
        });

答案 1 :(得分:0)

这可能是由于某种"沉重的"处理onDateSet(...)回调。 试着用这个:

button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {

            new Handler().postDelayed(new Runnable() {

                @Override
                public void run() {
                    datePicker.show();

                }
            }, 300);
        }
    });