2015-04-03 93 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

相關問題