2015-04-03 102 views
0

我在正常的活动创建我onCreate方法对话框:的DatePicker对话框,按钮=>点击两次打开

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. 我按一下按钮第二次,日期选择表示

当OK =>

  1. 当我点击此按钮一次,日期选择表示。
  2. 我点击确定在对话框
  3. 我按一下按钮第二次,日期选择器没有显示,如果我写两次Datepicker.show()

howewer,这项工作:

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

       } 
      }); 

回答

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

      } 
     }); 
+0

是的,谢谢你,工作的伟大,howewer我宣布两次日期选择器=新DatePickerDialog(...),在OnCreate(我需要它显示在创建对话框)并在听众中。 – Ng1Chuck 2015-04-03 09:12:35

+0

欢迎我的朋友@ Ng1Chuck你可以投票了它是帮助你。 – 2015-04-03 09:14:55

+0

是的,您可以创建多个对话框及其对象和多个侦听器,因此您可以轻松处理它,如果您也为答案投票,我们将不胜感激。 – 2015-04-03 09:17:44

0

这可能是由于onDateSet(...)回调的某种“重”工作。 尝试使用此:

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

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

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

       } 
      }, 300); 
     } 
    }); 
+0

不,谢谢,但这并不奏效,当我点击确定日期选择器对话框就像程序在等待什么。 – Ng1Chuck 2015-04-03 09:22:26