2015-06-10 2 views
1

Я использую DialogFragment, который отображает DatePicker. Как я могу показать кнопку «Отмена» в диалоговом окне?Как показать кнопку Отмена на DatePicker?

+0

Вы попробуйте использовать: DialogInterface.BUTTON_NEGATIVE? –

+0

У меня была такая же проблема, и я решил с этим: http://stackoverflow.com/questions/14092093/is-there-a-way-to-use-cancel-in-android-jellybean-timepickerdialog/14097934# 14097934 – Manza

ответ

3

Попробуйте этот код, как я нашел из THIS


DatePickerDialog dialog = new DatePickerDialog(this, 
       mDateSetListener, 
       year, month, day); 

    dialog.setButton(DialogInterface.BUTTON_NEGATIVE, getString(R.string.cancel), new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int which) { 
     if (which == DialogInterface.BUTTON_NEGATIVE) { 
      // Do Stuff 
     } 
    } 
    }); 
0

Используйте этот код и изменить пользовательский интерфейс в соответствии с вашими удобно.

/** 
    * Prepares & shows the Dialog for selecting date. 
    */ 
    private void prepareDateDialog() 
    { 
     final Dialog dialog = new Dialog(this, android.R.style.Theme_Holo_Light_Dialog_NoActionBar); 
     dialog.setContentView(R.layout.dialog_date_picker); 
     datePicker = (DatePicker) dialog.findViewById(R.id.dialog_date_picker_date); 

     // initialize DatePicker with the previously initialized values. 
     datePicker.init(year, month - 1, dayOfMonth, null); 
     TextView tvDone = (TextView) dialog.findViewById(R.id.dialog_date_picker_tv_done); 
     TextView tvCancel = (TextView) dialog.findViewById(R.id.dialog_date_picker_tv_cancel); 
     tvCancel.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       dialog.dismiss(); 
      } 
     }); 

     tvDone.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       dialog.dismiss(); 
       setDate(); 
      } 
     }); 
     dialog.show(); 
    } 

метод SETDATE ..

/** 
    * Sets the date selected by the user. 
    */ 
    private void setDate() 
    { 
     dayOfMonth = datePicker.getDayOfMonth(); 
     month = (datePicker.getMonth()) + 1; 
     year = datePicker.getYear(); 

     Calendar c = Calendar.getInstance(); 
     c.set(Calendar.DATE, dayOfMonth); 
     c.set(Calendar.MONTH, month); 
     c.set(Calendar.YEAR, year); 

     String monthCount = "" + month; 
     String day = dayOfMonth + ""; 
     if (dayOfMonth < 9) 
      day = "0" + dayOfMonth; 
     if (month < 9) 
      monthCount = "0" + month; 

     selectedDate = day + "-" + monthCount + "-" + year; 
     tvDate.setText(selectedDate); 
     tvBirthday.setText(selectedDate); 
    } 
Смежные вопросы