2011-04-13 3 views
1

DatePickerDialog를 구현했으며 제대로 작동합니다. 그러나 제목에는 형식이없는 것 같습니다. 일 화요일, 4 월 12 일 2011 년을하지만 그 대신 그것은 제목을 포맷해야처럼 2011 4 12Android DatePickerDialog 제목 문제

소스 코드가 보이는, 3 읽지 만 그렇지 않은 : 예를 들어, 읽어야

private void updateTitle(int year, int month, int day) { 
    mCalendar.set(Calendar.YEAR, year); 
    mCalendar.set(Calendar.MONTH, month); 
    mCalendar.set(Calendar.DAY_OF_MONTH, day); 
    setTitle(mTitleDateFormat.format(mCalendar.getTime())); 
} 
+0

실제로이 답변을 발견했습니다. DatePickerDialog를 확장하면 더 많은 제어권을 가질 수 있고 원하는대로 제목을 수정할 수 있습니다. – srowley

답변

4

당신이 말했듯이 DatePickerDialog 제목 형식은 DatePickerDialog 생성자, 에서 초기화하는 "mTitleDateFormat"에 따라 다릅니다. mTitleDateFormat = java.text.DateFormat. getDateInstance (java.text.DateFormat.FULL);

mTitleDateFormat은 private이며 outer는 수정할 수 없습니다. 따라서 DatePickerDialog 클래스를 확장 할 수 있습니다.

다음 코드는 제 작업에서 잘 작동합니다. 클래스 코드 :

class DatePickerDialog extends android.app.DatePickerDialog { 
    public DatePickerDialog(Context context, OnDateSetListener callBack, 
      int year, int monthOfYear, int dayOfMonth) { 
     super(context, callBack, year, monthOfYear, dayOfMonth); 
     updateTitle(year, monthOfYear, dayOfMonth); 
    } 
    public void onDateChanged(DatePicker view, int year, 
      int month, int day) { 
     updateTitle(year, month, day); 
    } 
    private void updateTitle(int year, int month, int day) { 
     Calendar mCalendar = Calendar.getInstance(); 
     mCalendar.set(Calendar.YEAR, year); 
     mCalendar.set(Calendar.MONTH, month); 
     mCalendar.set(Calendar.DAY_OF_MONTH, day); 
     setTitle(getFormat().format(mCalendar.getTime())); 
    } 
     /* 
     * the format for dialog tile,and you can override this method 
     */ 
    public SimpleDateFormat getFormat(){ 
     return new SimpleDateFormat("yyyy-MM-dd"); 
    }; 
}