@ SuppressWarnings ( "unchecked" ) private < E > View createDateView ( final DateProfileField field , Date currentValue , final FieldValueListener < Date > listener , ViewGroup container ) { View result = mInflater . inflate ( R . layout . profileedit_field_date , container , false ) ; String friendlyName = mHelper . getFriendlyNameOfField ( field ) ; ( ( TextView ) result . findViewById ( R . id . profileedit_field_identifier ) ) . setText ( friendlyName ) ; String dateToShow ; if ( currentValue == null ) { dateToShow = "Click to edit" ; } else { dateToShow = mHelper . convertToFriendlyString ( field , currentValue ) ; } final TextView dateTextView = ( TextView ) result . findViewById ( R . id . profileedit_field_date_text ) ; dateTextView . setText ( dateToShow ) ; dateTextView . setOnClickListener ( new View . OnClickListener ( ) { @ Override public void onClick ( View v ) { Calendar today = GregorianCalendar . getInstance ( ) ; int year = today . get ( Calendar . YEAR ) ; int monthOfYear = today . get ( Calendar . MONTH ) ; int dayOfMonth = today . get ( Calendar . DAY_OF_MONTH ) ; OnDateSetListener callBack = new OnDateSetListener ( ) { @ Override public void onDateSet ( DatePicker view , int year , int monthOfYear , int dayOfMonth ) { GregorianCalendar cal = new GregorianCalendar ( year , monthOfYear , dayOfMonth ) ; Date newDate = new Date ( cal . getTimeInMillis ( ) ) ; String newDateString = mHelper . convertToFriendlyString ( field , newDate ) ; dateTextView . setText ( newDateString ) ; listener . onFieldValueChanged ( field , newDate ) ; } } ; DatePickerDialog dialog = new DatePickerDialog ( mContext , callBack , year , monthOfYear , dayOfMonth ) ; dialog . show ( ) ; } } ) ; setUpCircleView ( result , ( ProfileField < E > ) field , ( FieldValueListener < E > ) listener ) ; return result ; }
Edit view for date fields